mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-02-22 07:38:00 +01:00
152 lines
3.5 KiB
TypeScript
152 lines
3.5 KiB
TypeScript
import { describe, expect, test } from 'vitest';
|
|
import { migrateImport } from '../src';
|
|
|
|
describe('importer-yaak', () => {
|
|
test('Skips invalid imports', () => {
|
|
expect(migrateImport('not JSON')).toBeUndefined();
|
|
expect(migrateImport('[]')).toBeUndefined();
|
|
expect(migrateImport(JSON.stringify({ resources: {} }))).toBeUndefined();
|
|
});
|
|
|
|
test('converts schema 1 to 2', () => {
|
|
const imported = migrateImport(
|
|
JSON.stringify({
|
|
yaakSchema: 1,
|
|
resources: {
|
|
requests: [],
|
|
},
|
|
}),
|
|
);
|
|
|
|
expect(imported).toEqual(
|
|
expect.objectContaining({
|
|
resources: {
|
|
httpRequests: [],
|
|
},
|
|
}),
|
|
);
|
|
});
|
|
test('converts schema 2 to 3', () => {
|
|
const imported = migrateImport(
|
|
JSON.stringify({
|
|
yaakSchema: 2,
|
|
resources: {
|
|
environments: [
|
|
{
|
|
id: 'e_1',
|
|
workspaceId: 'w_1',
|
|
name: 'Production',
|
|
variables: [{ name: 'E1', value: 'E1!' }],
|
|
},
|
|
],
|
|
workspaces: [
|
|
{
|
|
id: 'w_1',
|
|
variables: [{ name: 'W1', value: 'W1!' }],
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
);
|
|
|
|
expect(imported).toEqual(
|
|
expect.objectContaining({
|
|
resources: {
|
|
workspaces: [
|
|
{
|
|
id: 'w_1',
|
|
},
|
|
],
|
|
environments: [
|
|
{
|
|
id: 'e_1',
|
|
workspaceId: 'w_1',
|
|
name: 'Production',
|
|
variables: [{ name: 'E1', value: 'E1!' }],
|
|
parentModel: 'environment',
|
|
parentId: null,
|
|
},
|
|
{
|
|
id: 'GENERATE_ID::base_env_w_1',
|
|
workspaceId: 'w_1',
|
|
name: 'Global Variables',
|
|
variables: [{ name: 'W1', value: 'W1!' }],
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
);
|
|
});
|
|
|
|
test('converts schema 4 to 5', () => {
|
|
const imported = migrateImport(
|
|
JSON.stringify({
|
|
yaakSchema: 2,
|
|
resources: {
|
|
environments: [
|
|
{
|
|
id: 'e_1',
|
|
workspaceId: 'w_1',
|
|
base: false,
|
|
name: 'Production',
|
|
variables: [{ name: 'E1', value: 'E1!' }],
|
|
},
|
|
{
|
|
id: 'e_1',
|
|
workspaceId: 'w_1',
|
|
base: true,
|
|
name: 'Global Variables',
|
|
variables: [{ name: 'G1', value: 'G1!' }],
|
|
},
|
|
],
|
|
folders: [
|
|
{
|
|
id: 'f_1',
|
|
},
|
|
],
|
|
workspaces: [
|
|
{
|
|
id: 'w_1',
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
);
|
|
|
|
expect(imported).toEqual(
|
|
expect.objectContaining({
|
|
resources: {
|
|
workspaces: [
|
|
{
|
|
id: 'w_1',
|
|
},
|
|
],
|
|
folders: [
|
|
{
|
|
id: 'f_1',
|
|
},
|
|
],
|
|
environments: [
|
|
{
|
|
id: 'e_1',
|
|
workspaceId: 'w_1',
|
|
name: 'Production',
|
|
variables: [{ name: 'E1', value: 'E1!' }],
|
|
parentModel: 'environment',
|
|
parentId: null,
|
|
},
|
|
{
|
|
id: 'e_1',
|
|
workspaceId: 'w_1',
|
|
name: 'Global Variables',
|
|
parentModel: 'workspace',
|
|
parentId: null,
|
|
variables: [{ name: 'G1', value: 'G1!' }],
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
);
|
|
});
|
|
});
|