insomnia/app/network/__tests__/network.test.js

274 lines
9.7 KiB
JavaScript
Raw Normal View History

// import * as networkUtils from '../network';
// import * as db from '../../common/database';
// import nock from 'nock';
// import {resolve as pathResolve, join as pathJoin} from 'path';
// import {getRenderedRequest} from '../../common/render';
// import * as models from '../../models';
// import {CONTENT_TYPE_FORM_URLENCODED, getAppVersion, CONTENT_TYPE_FILE, CONTENT_TYPE_FORM_DATA, AUTH_BASIC} from '../../common/constants';
describe('no-op', () => {
it('no-ops', () => {
expect(true).toBeTruthy();
});
2016-09-08 06:54:35 +00:00
});
2016-09-08 20:07:19 +00:00
// describe('actuallySend()', () => {
// beforeEach(() => db.init(models.types(), {inMemoryOnly: true}, true));
//
// it('sends a generic request', async () => {
// let mock;
//
// const workspace = await models.workspace.create();
// const settings = await models.settings.create();
// const cookies = [{
// creation: new Date('2016-10-05T04:40:49.505Z'),
// key: 'foo',
// value: 'barrrrr',
// expires: new Date('2096-10-12T04:40:49.000Z'),
// domain: 'notlocalhost',
// path: '/',
// hostOnly: true,
// lastAccessed: new Date('2096-10-05T04:40:49.505Z')
// }, {
// creation: new Date('2016-10-05T04:40:49.505Z'),
// key: 'foo',
// value: 'barrrrr',
// expires: new Date('2096-10-12T04:40:49.000Z'),
// domain: 'localhost',
// path: '/',
// hostOnly: true,
// lastAccessed: new Date('2096-10-05T04:40:49.505Z')
// }];
//
// await models.cookieJar.create({
// parentId: workspace._id,
// cookies
// });
//
// mock = nock('http://localhost')
// .matchHeader('Content-Type', 'application/json')
// .matchHeader('Authorization', 'Basic dXNlcjpwYXNz')
// .matchHeader('Accept', '*/*')
// .matchHeader('User-Agent', `insomnia/${getAppVersion()}`)
// .matchHeader('Cookie', 'foo=barrrrr')
// .post('/', 'foo=bar')
// .query({'foo bar': 'hello&world'})
// .reply(200, 'response body')
// .log(console.log);
//
// const request = Object.assign(models.request.init(), {
// _id: 'req_123',
// parentId: workspace._id,
// headers: [{name: 'Content-Type', value: 'application/json'}],
// parameters: [{name: 'foo bar', value: 'hello&world'}],
// method: 'POST',
// body: {
// mimeType: CONTENT_TYPE_FORM_URLENCODED,
// params: [{name: 'foo', value: 'bar'}]
// },
// url: 'http://localhost',
// authentication: {
// type: AUTH_BASIC,
// username: 'user',
// password: 'pass'
// }
// });
//
// const renderedRequest = await getRenderedRequest(request);
// const response = await networkUtils._actuallySend(
// renderedRequest,
// workspace,
// settings
// );
//
// expect(mock.basePath).toBe('http://localhost:80');
// expect(response.error).toBe(undefined);
// expect(response.url).toBe('http://localhost/?foo%20bar=hello%26world');
// expect(response.body).toBe(new Buffer('response body').toString('base64'));
// expect(response.statusCode).toBe(200);
// });
//
// it('skips sending and storing cookies with setting', async () => {
// let mock;
//
// const workspace = await models.workspace.create();
// const settings = await models.settings.create();
// const cookies = [{
// creation: new Date('2016-10-05T04:40:49.505Z'),
// key: 'foo',
// value: 'barrrrr',
// expires: new Date('2096-10-12T04:40:49.000Z'),
// domain: 'notlocalhost',
// path: '/',
// hostOnly: true,
// lastAccessed: new Date('2096-10-05T04:40:49.505Z')
// }, {
// creation: new Date('2016-10-05T04:40:49.505Z'),
// key: 'foo',
// value: 'barrrrr',
// expires: new Date('2096-10-12T04:40:49.000Z'),
// domain: 'localhost',
// path: '/',
// hostOnly: true,
// lastAccessed: new Date('2096-10-05T04:40:49.505Z')
// }];
//
// await models.cookieJar.create({
// parentId: workspace._id,
// cookies
// });
//
// mock = nock('http://localhost')
// .matchHeader('Content-Type', 'application/json')
// .matchHeader('Authorization', 'Basic dXNlcjpwYXNz')
// .matchHeader('Accept', '*/*')
// .matchHeader('User-Agent', `insomnia/${getAppVersion()}`)
// .post('/', 'foo=bar')
// .query({'foo bar': 'hello&world'})
// .reply(200, 'response body', {
// 'Set-Cookie': 'foo=bar; expires=Tue, 27-Mar-38 22:54:51 GMT; path=/; HttpOnly'
// })
// .log(console.log);
//
// const request = Object.assign(models.request.init(), {
// _id: 'req_123',
// parentId: workspace._id,
// headers: [{name: 'Content-Type', value: 'application/json'}],
// parameters: [{name: 'foo bar', value: 'hello&world'}],
// method: 'POST',
// body: {
// mimeType: CONTENT_TYPE_FORM_URLENCODED,
// params: [{name: 'foo', value: 'bar'}]
// },
// url: 'http://localhost',
// authentication: {
// type: AUTH_BASIC,
// username: 'user',
// password: 'pass'
// },
// settingStoreCookies: false,
// settingSendCookies: false
// });
//
// const renderedRequest = await getRenderedRequest(request);
// const response = await networkUtils._actuallySend(
// renderedRequest,
// workspace,
// settings
// );
//
// expect(mock.basePath).toBe('http://localhost:80');
// expect(response.error).toBe(undefined);
// expect(response.url).toBe('http://localhost/?foo%20bar=hello%26world');
// expect(response.body).toBe(new Buffer('response body').toString('base64'));
// expect(response.statusCode).toBe(200);
// });
//
// it('sends a file', async () => {
// let mock;
//
// const workspace = await models.workspace.create();
// const settings = await models.settings.create();
// await models.cookieJar.create({parentId: workspace._id});
//
// mock = nock('http://localhost')
// .matchHeader('Content-Type', 'application/octet-stream')
// .matchHeader('Accept', '*/*')
// .matchHeader('User-Agent', `insomnia/${getAppVersion()}`)
// .post('/', 'Hello World!')
// .reply(200, 'response body')
// .log(console.log);
//
// const request = Object.assign(models.request.init(), {
// _id: 'req_123',
// parentId: workspace._id,
// headers: [{name: 'Content-Type', value: 'application/octet-stream'}],
// url: 'http://localhost',
// method: 'POST',
// body: {
// mimeType: CONTENT_TYPE_FILE,
// fileName: pathResolve(pathJoin(__dirname, './testfile.txt')) // Let's send ourselves
// }
// });
//
// const renderedRequest = await getRenderedRequest(request);
// const response = await networkUtils._actuallySend(
// renderedRequest,
// workspace,
// settings
// );
//
// expect(mock.basePath).toBe('http://localhost:80');
// expect(response.error).toBe(undefined);
// expect(response.url).toBe('http://localhost/');
// expect(response.body).toBe(new Buffer('response body').toString('base64'));
// expect(response.statusCode).toBe(200);
// });
//
// it('sends multipart form data', async () => {
// let mock;
//
// const workspace = await models.workspace.create();
// const settings = await models.settings.create();
// await models.cookieJar.create({parentId: workspace._id});
// const fileName = pathResolve(pathJoin(__dirname, './testfile.txt'));
// let requestBody = 'n/a';
// mock = nock('http://localhost')
// .matchHeader('Content-Type', /^multipart\/form-data/)
// .matchHeader('Accept', '*/*')
// .matchHeader('User-Agent', `insomnia/${getAppVersion()}`)
// .post('/', body => {
// requestBody = body;
// return true;
// })
// .reply(200, 'response body')
// .log(console.log);
//
// const request = Object.assign(models.request.init(), {
// _id: 'req_123',
// parentId: workspace._id,
// headers: [{name: 'Content-Type', value: 'multipart/form-data'}],
// url: 'http://localhost',
// method: 'POST',
// body: {
// mimeType: CONTENT_TYPE_FORM_DATA,
// params: [
// // Should ignore value and send the file since type is set to file
// {name: 'foo', fileName: fileName, value: 'bar', type: 'file'},
//
// // Some extra params
// {name: 'a', value: 'AA'},
// {name: 'baz', value: 'qux', disabled: true}
// ]
// }
// });
//
// const renderedRequest = await getRenderedRequest(request);
// const response = await networkUtils._actuallySend(
// renderedRequest,
// workspace,
// settings
// );
//
// expect(mock.basePath).toBe('http://localhost:80');
// expect(response.error).toBe(undefined);
// expect(response.url).toBe('http://localhost/');
// expect(response.body).toBe(new Buffer('response body').toString('base64'));
// expect(response.statusCode).toBe(200);
//
// const lines = requestBody.split(/\r\n/);
// expect(lines[0]).toMatch(/^----------------------------\d{24}/);
// expect(lines[1]).toBe('Content-Disposition: form-data; name="foo"; filename="testfile.txt"');
// expect(lines[2]).toBe('Content-Type: text/plain');
// expect(lines[3]).toBe('');
// expect(lines[4]).toBe('Hello World!\n');
// expect(lines[5]).toMatch(/^----------------------------\d{24}/);
// expect(lines[6]).toBe('Content-Disposition: form-data; name="a"');
// expect(lines[7]).toBe('');
// expect(lines[8]).toBe('AA');
// expect(lines[9]).toMatch(/^----------------------------\d{24}--/);
// expect(lines[10]).toBe('');
// expect(lines.length).toBe(11);
// });
// });