mirror of
https://github.com/Kong/insomnia
synced 2024-11-12 17:26:32 +00:00
69 lines
2.0 KiB
JavaScript
Executable File
69 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()
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})
|