Curl import (#24)

This commit is contained in:
Gregory Schier
2024-05-07 21:57:03 -07:00
committed by GitHub
parent 896e3d5831
commit 82e2a6b73e
27 changed files with 2054 additions and 724 deletions

View File

@@ -1,6 +1,7 @@
import * as fs from 'node:fs';
import * as path from 'node:path';
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
import { Model } from '../../../src-web/lib/models';
import { pluginHookImport } from '../src';
let originalRandom = Math.random;
@@ -23,42 +24,67 @@ describe('importer-postman', () => {
test('Imports ' + fixture, () => {
const contents = fs.readFileSync(path.join(p, fixture), 'utf-8');
const imported = pluginHookImport(contents);
const folder0 = newId('folder');
const folder1 = newId('folder');
expect(imported).toEqual({
resources: expect.objectContaining({
workspaces: [
expect.objectContaining({
id: newId('workspace'),
model: 'workspace',
name: 'New Collection',
}),
],
folders: expect.arrayContaining([
expect.objectContaining({
id: folder0,
model: 'folder',
workspaceId: existingId('workspace'),
name: 'Top Folder',
workspaceId: 'wk_0G3J6M9QcT',
}),
expect.objectContaining({
folderId: folder0,
id: folder1,
model: 'folder',
workspaceId: existingId('workspace'),
name: 'Nested Folder',
workspaceId: 'wk_0G3J6M9QcT',
}),
]),
httpRequests: expect.arrayContaining([
expect.objectContaining({
id: newId('http_request'),
model: 'http_request',
name: 'Request 1',
workspaceId: 'wk_0G3J6M9QcT',
folderId: 'fl_vundefinedyundefinedBundefinedE0H3',
workspaceId: existingId('workspace'),
folderId: folder1,
}),
expect.objectContaining({
id: newId('http_request'),
model: 'http_request',
name: 'Request 2',
workspaceId: 'wk_0G3J6M9QcT',
folderId: 'fl_fWiZlundefinedoundefinedrundefined',
workspaceId: existingId('workspace'),
folderId: folder0,
}),
expect.objectContaining({
id: newId('http_request'),
model: 'http_request',
name: 'Request 3',
workspaceId: 'wk_0G3J6M9QcT',
workspaceId: existingId('workspace'),
folderId: null,
}),
]),
workspaces: [
expect.objectContaining({
name: 'New Collection',
}),
],
}),
});
});
}
});
const idCount: Partial<Record<Model['model'], number>> = {};
function newId(model: Model['model']): string {
idCount[model] = (idCount[model] ?? -1) + 1;
return `GENERATE_ID::${model.toUpperCase()}_${idCount[model]}`;
}
function existingId(model: Model['model']): string {
return `GENERATE_ID::${model.toUpperCase()}_${idCount[model] ?? 0}`;
}