mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 14:49:53 +00:00
70 lines
2.0 KiB
JavaScript
Executable File
70 lines
2.0 KiB
JavaScript
Executable File
/* global describe, it */
|
|
|
|
'use strict';
|
|
|
|
var fixtures = require('./fixtures');
|
|
var HTTPSnippet = require('../src');
|
|
var targets = require('../src/targets');
|
|
var shell = require('child_process');
|
|
var util = require('util');
|
|
|
|
require('should');
|
|
|
|
var base = './test/fixtures/output/';
|
|
var requests = [
|
|
'application-form-encoded',
|
|
'application-json',
|
|
'cookies',
|
|
'custom-method',
|
|
'headers',
|
|
'https',
|
|
'multipart-data',
|
|
'multipart-form-data',
|
|
'short'
|
|
];
|
|
|
|
// test all the things!
|
|
fixtures.cli.forEach(function(cli) {
|
|
describe(targets[cli.target].info.title + ' Request Validation', function() {
|
|
cli.clients.forEach(function(client) {
|
|
requests.forEach(function(request) {
|
|
it(client + ' request should match mock for ' + request, function(done) {
|
|
var stdout = '';
|
|
var fixture = cli.target + '/' + client + '/' + request + HTTPSnippet.extname(cli.target);
|
|
var command = util.format(cli.run, base + fixture);
|
|
|
|
var ls = shell.exec(command);
|
|
|
|
ls.stdout.on('data', function(data) {
|
|
stdout += data;
|
|
});
|
|
|
|
ls.on('exit', function(code) {
|
|
try {
|
|
var har = JSON.parse(stdout);
|
|
} catch (err) {
|
|
err.should.be.null;
|
|
}
|
|
|
|
// make an exception for multipart/form-data
|
|
if (fixtures.requests[request].headers) {
|
|
fixtures.requests[request].headers.forEach(function(header, index) {
|
|
if (header.name === 'content-type' && header.value === 'multipart/form-data') {
|
|
delete fixtures.requests[request].headers[index];
|
|
}
|
|
});
|
|
}
|
|
|
|
har.should.have.property('log');
|
|
har.log.should.have.property('entries').and.be.Array;
|
|
har.log.entries[0].should.have.property('request');
|
|
har.log.entries[0].request.should.containDeep(fixtures.requests[request]);
|
|
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|