Simple tests for Postman and Yaak importers

This commit is contained in:
Gregory Schier
2024-03-18 13:40:00 -07:00
parent fa46611d76
commit c49e81cde4
5 changed files with 86 additions and 157 deletions

View File

@@ -1,6 +1,6 @@
import * as fs from 'node:fs';
import * as path from 'node:path';
import { expect, test, describe, beforeEach, afterEach, vi } from 'vitest';
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
import { pluginHookImport } from '../src';
let originalRandom = Math.random;
@@ -8,8 +8,8 @@ let originalRandom = Math.random;
describe('importer-postman', () => {
beforeEach(() => {
let i = 0;
const mocked = vi.fn(() => ((i++ * 1000) % 133) / 100);
Math.random = mocked;
// Psuedo-random number generator to ensure consistent ID generation
Math.random = vi.fn(() => ((i++ * 1000) % 133) / 100);
});
afterEach(() => {
@@ -19,16 +19,45 @@ describe('importer-postman', () => {
const p = path.join(__dirname, 'fixtures');
const fixtures = fs.readdirSync(p);
console.log('FIXTURES', fixtures);
for (const fixture of fixtures) {
test('Imports ' + fixture, () => {
const contents = fs.readFileSync(path.join(p, fixture), 'utf-8');
const imported = pluginHookImport(contents);
expect(imported).toEqual({
resources: {
environments: [],
requests: [],
},
resources: expect.objectContaining({
folders: expect.arrayContaining([
expect.objectContaining({
name: 'Top Folder',
workspaceId: 'wk_0G3J6M9QcT',
}),
expect.objectContaining({
name: 'Nested Folder',
workspaceId: 'wk_0G3J6M9QcT',
}),
]),
httpRequests: expect.arrayContaining([
expect.objectContaining({
name: 'Request 1',
workspaceId: 'wk_0G3J6M9QcT',
folderId: 'fl_vundefinedyundefinedBundefinedE0H3',
}),
expect.objectContaining({
name: 'Request 2',
workspaceId: 'wk_0G3J6M9QcT',
folderId: 'fl_fWiZlundefinedoundefinedrundefined',
}),
expect.objectContaining({
name: 'Request 3',
workspaceId: 'wk_0G3J6M9QcT',
folderId: null,
}),
]),
workspaces: [
expect.objectContaining({
name: 'New Collection',
}),
],
}),
});
});
}