mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-09-07 10:27:15 +02:00
68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
import * as fs from "node:fs";
|
|
import * as path from "node:path";
|
|
import { describe, expect, test } from "vite-plus/test";
|
|
import YAML from "yaml";
|
|
import { convertInsomnia } from "../src";
|
|
|
|
describe("importer-yaak", () => {
|
|
const p = path.join(__dirname, "fixtures");
|
|
const fixtures = fs.readdirSync(p);
|
|
|
|
for (const fixture of fixtures) {
|
|
if (fixture.includes(".output")) {
|
|
continue;
|
|
}
|
|
|
|
test(`Imports ${fixture}`, () => {
|
|
const contents = fs.readFileSync(path.join(p, fixture), "utf-8");
|
|
const expected = fs.readFileSync(
|
|
path.join(p, fixture.replace(/.input\..*/, ".output.json")),
|
|
"utf-8",
|
|
);
|
|
const result = convertInsomnia(contents);
|
|
// console.log(JSON.stringify(result, null, 2))
|
|
expect(result).toEqual(parseJsonOrYaml(expected));
|
|
});
|
|
}
|
|
|
|
test("Keys resources by their Insomnia _id, unchanged by a rename", () => {
|
|
const collection = (requestName: string) =>
|
|
YAML.stringify({
|
|
type: "collection.insomnia.rest/5.0",
|
|
name: "Keys",
|
|
meta: { id: "wrk_1" },
|
|
environments: { meta: { id: "env_1" }, name: "Base", data: {} },
|
|
collection: [
|
|
{
|
|
meta: { id: "fld_1" },
|
|
name: "Folder",
|
|
children: [
|
|
{
|
|
meta: { id: "req_1" },
|
|
name: requestName,
|
|
method: "GET",
|
|
url: "https://yaak.app",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|
|
|
|
const before = convertInsomnia(collection("Original"));
|
|
const after = convertInsomnia(collection("Renamed"));
|
|
|
|
expect(before?.sourceKeys?.[before.resources.httpRequests[0]!.id]).toBe("req_1");
|
|
expect(after?.sourceKeys?.[after.resources.httpRequests[0]!.id]).toBe("req_1");
|
|
expect(before?.sourceKeys?.[before.resources.folders[0]!.id]).toBe("fld_1");
|
|
expect(before?.sourceKeys?.[before.resources.workspaces[0]!.id]).toBe("wrk_1");
|
|
});
|
|
});
|
|
|
|
function parseJsonOrYaml(text: string): unknown {
|
|
try {
|
|
return JSON.parse(text);
|
|
} catch {
|
|
return YAML.parse(text);
|
|
}
|
|
}
|