import { describe, expect, test } from "vite-plus/test"; 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!" }], }, ], }, }), ); }); });