60 lines
1.2 KiB
TypeScript
60 lines
1.2 KiB
TypeScript
|
import { SchemaMigrationV1 } from '../../src/schemas/share-v1';
|
||
|
|
||
|
const V0 = {
|
||
|
language: 'language',
|
||
|
code: 'code',
|
||
|
entrypoint: 'entrypoint',
|
||
|
parameters: 'parameters',
|
||
|
storage: 'storage'
|
||
|
};
|
||
|
|
||
|
const V1 = {
|
||
|
version: 'v1',
|
||
|
state: {
|
||
|
editor: {
|
||
|
language: 'language',
|
||
|
code: 'code'
|
||
|
},
|
||
|
compile: {
|
||
|
entrypoint: 'entrypoint'
|
||
|
},
|
||
|
dryRun: {
|
||
|
entrypoint: 'entrypoint',
|
||
|
parameters: 'parameters',
|
||
|
storage: 'storage'
|
||
|
},
|
||
|
deploy: {
|
||
|
entrypoint: 'entrypoint',
|
||
|
storage: 'storage',
|
||
|
useTezBridge: false
|
||
|
},
|
||
|
evaluateFunction: {
|
||
|
entrypoint: 'entrypoint',
|
||
|
parameters: 'parameters'
|
||
|
},
|
||
|
evaluateValue: {
|
||
|
entrypoint: 'entrypoint'
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
describe('Share Schema Migration V1', () => {
|
||
|
it('should forward migrate v0 to v1', () => {
|
||
|
expect(new SchemaMigrationV1().forward(V0)).toEqual(V1);
|
||
|
});
|
||
|
|
||
|
it('should forward migrate v1 to v1', () => {
|
||
|
expect(new SchemaMigrationV1().forward(V1)).toEqual(V1);
|
||
|
});
|
||
|
|
||
|
it('should throw error on unknown version', () => {
|
||
|
function forwardUnknownVersion() {
|
||
|
new SchemaMigrationV1().forward({
|
||
|
a: 0
|
||
|
});
|
||
|
}
|
||
|
|
||
|
expect(forwardUnknownVersion).toThrowError();
|
||
|
});
|
||
|
});
|