test: Add tests for export requests functions

This commit is contained in:
Ricky Chandra committed 2019-03-05 18:48:33 +07:00
1 parent 63150be087
commit 10265edd02
1 file changed
+67 -17
@@ -52,10 +52,11 @@ describe('exportWorkspacesHAR()', () => {
});
const includePrivateDocs = true;
const json = await importUtil.exportWorkspacesHAR(wrk1, includePrivateDocs);
const data = JSON.parse(json);
expect(data).toMatchObject({
// Test export whole workspace.
const exportWorkspacesJson = await importUtil.exportWorkspacesHAR(wrk1, includePrivateDocs);
const exportWorkspacesData = JSON.parse(exportWorkspacesJson);
expect(exportWorkspacesData).toMatchObject({
log: {
entries: [
{
@@ -70,7 +71,24 @@ describe('exportWorkspacesHAR()', () => {
],
},
});
expect(data.log.entries.length).toBe(2);
expect(exportWorkspacesData.log.entries.length).toBe(2);
// Test export some requests only.
const exportRequestsJson = await importUtil.exportRequestsHAR([req1], includePrivateDocs);
const exportRequestsData = JSON.parse(exportRequestsJson);
expect(exportRequestsData).toMatchObject({
log: {
entries: [
{
request: {
headers: [{ name: 'X-Environment', value: 'private1' }],
},
comment: req1.name,
},
],
},
});
expect(exportRequestsData.log.entries.length).toBe(1);
});
it('exports all workspaces as an HTTP Archive', async () => {
const wrk1 = await models.workspace.create({
@@ -162,9 +180,17 @@ describe('exportWorkspacesJSON()', () => {
const w = await models.workspace.create({ name: 'Workspace' });
const jar = await models.cookieJar.getOrCreateForParentId(w._id);
const r1 = await models.request.create({
name: 'Request',
name: 'Request 1',
parentId: w._id,
});
const f2 = await models.requestGroup.create({
name: 'Folder 2',
parentId: w._id,
});
const r2 = await models.request.create({
name: 'Request 2',
parentId: f2._id,
});
const eBase = await models.environment.getOrCreateForWorkspace(w);
const ePub = await models.environment.create({
name: 'Public',
@@ -176,18 +202,42 @@ describe('exportWorkspacesJSON()', () => {
parentId: eBase._id,
});
const json = await importUtil.exportWorkspacesJSON();
const data = JSON.parse(json);
// Test export whole workspace.
const exportedWorkspacesJson = await importUtil.exportWorkspacesJSON();
const exportWorkspacesData = JSON.parse(exportedWorkspacesJson);
expect(exportWorkspacesData).toMatchObject({
_type: 'export',
__export_format: 3,
__export_date: expect.stringMatching(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/),
__export_source: `insomnia.desktop.app:v${getAppVersion()}`,
resources: expect.arrayContaining([
expect.objectContaining({ _id: w._id }),
expect.objectContaining({ _id: eBase._id }),
expect.objectContaining({ _id: jar._id }),
expect.objectContaining({ _id: r1._id }),
expect.objectContaining({ _id: f2._id }),
expect.objectContaining({ _id: r2._id }),
expect.objectContaining({ _id: ePub._id }),
]),
});
expect(exportWorkspacesData.resources.length).toBe(7);
expect(data._type).toBe('export');
expect(data.__export_format).toBe(3);
expect(data.__export_date).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/);
expect(data.__export_source).toBe(`insomnia.desktop.app:v${getAppVersion()}`);
expect(data.resources[0]._id).toBe(w._id);
expect(data.resources[1]._id).toBe(eBase._id);
expect(data.resources[2]._id).toBe(jar._id);
expect(data.resources[3]._id).toBe(r1._id);
expect(data.resources[4]._id).toBe(ePub._id);
expect(data.resources.length).toBe(5);
// Test export some requests only.
const exportRequestsJson = await importUtil.exportRequestsJSON([r1]);
const exportRequestsData = JSON.parse(exportRequestsJson);
expect(exportRequestsData).toMatchObject({
_type: 'export',
__export_format: 3,
__export_date: expect.stringMatching(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/),
__export_source: `insomnia.desktop.app:v${getAppVersion()}`,
resources: expect.arrayContaining([
expect.objectContaining({ _id: w._id }),
expect.objectContaining({ _id: eBase._id }),
expect.objectContaining({ _id: jar._id }),
expect.objectContaining({ _id: r1._id }),
expect.objectContaining({ _id: ePub._id }),
]),
});
expect(exportRequestsData.resources.length).toBe(5);
});
});