generator-sails-rest-api
Version:
Yeoman generator that provides already configured and optimized Sails REST API with bundle of predefined features
186 lines (158 loc) • 5.8 kB
JavaScript
;
const path = require('path');
const assert = require('yeoman-assert');
const test = require('yeoman-test');
describe('sails-rest-api:response', () => {
describe('Should properly scaffold predefined response', () => {
before(() => {
return test
.run(path.join(__dirname, '../../generators/response'))
.withArguments(['ok'])
});
it('Should properly create api files', () => {
assert.file([
'api/responses/ok.js'
]);
assert.noFile([
'api/responses/badRequest.js',
'api/responses/created.js',
'api/responses/forbidden.js',
'api/responses/negotiate.js',
'api/responses/notFound.js',
'api/responses/serverError.js',
'api/responses/unauthorized.js'
]);
assert.fileContent('api/responses/ok.js', /_\.get\(config, 'code', 'OK'\)/);
});
it('Should properly create test files', () => {
assert.file([
'test/unit/responses/ok.test.js'
]);
assert.noFile([
'test/unit/responses/badRequest.test.js',
'test/unit/responses/created.test.js',
'test/unit/responses/forbidden.test.js',
'test/unit/responses/negotiate.test.js',
'test/unit/responses/notFound.test.js',
'test/unit/responses/serverError.test.js',
'test/unit/responses/unauthorized.test.js'
]);
assert.fileContent('test/unit/responses/ok.test.js', /const ok = require\('\.\.\/\.\.\/\.\.\/api\/responses\/ok'\);/);
});
});
describe('Should properly scaffold overridden predefined response', () => {
before(() => {
return test
.run(path.join(__dirname, '../../generators/response'))
.withArguments(['ok'])
.withOptions({
'new': true
})
});
it('Should properly create api files', () => {
assert.file([
'api/responses/ok.js'
]);
assert.noFile([
'api/responses/badRequest.js',
'api/responses/created.js',
'api/responses/forbidden.js',
'api/responses/negotiate.js',
'api/responses/notFound.js',
'api/responses/serverError.js',
'api/responses/unauthorized.js'
]);
assert.fileContent('api/responses/ok.js', /const response = data;/);
assert.noFileContent('api/responses/ok.js', /_\.get\(config, 'code', 'OK'\)/);
});
it('Should properly create test files', () => {
assert.file([
'test/unit/responses/ok.test.js'
]);
assert.noFile([
'test/unit/responses/badRequest.test.js',
'test/unit/responses/created.test.js',
'test/unit/responses/forbidden.test.js',
'test/unit/responses/negotiate.test.js',
'test/unit/responses/notFound.test.js',
'test/unit/responses/serverError.test.js',
'test/unit/responses/unauthorized.test.js'
]);
assert.fileContent('test/unit/responses/ok.test.js', /const Response = require\('\.\.\/\.\.\/\.\.\/api\/responses\/ok'\);/);
});
});
describe('Should properly scaffold all the predefined responses', () => {
before(() => {
return test
.run(path.join(__dirname, '../../generators/response'))
.withOptions({
'all': true
})
});
it('Should properly create api files', () => {
assert.file([
'api/responses/badRequest.js',
'api/responses/created.js',
'api/responses/forbidden.js',
'api/responses/negotiate.js',
'api/responses/notFound.js',
'api/responses/ok.js',
'api/responses/serverError.js',
'api/responses/unauthorized.js'
]);
assert.fileContent('api/responses/ok.js', /_\.get\(config, 'code', 'OK'\)/);
});
it('Should properly create test files', () => {
assert.file([
'test/unit/responses/badRequest.test.js',
'test/unit/responses/created.test.js',
'test/unit/responses/forbidden.test.js',
'test/unit/responses/negotiate.test.js',
'test/unit/responses/notFound.test.js',
'test/unit/responses/ok.test.js',
'test/unit/responses/serverError.test.js',
'test/unit/responses/unauthorized.test.js'
]);
assert.fileContent('test/unit/responses/ok.test.js', /const ok = require\('\.\.\/\.\.\/\.\.\/api\/responses\/ok'\);/);
});
});
describe('Should properly scaffold custom response', () => {
before(() => {
return test
.run(path.join(__dirname, '../../generators/response'))
.withArguments(['custom'])
});
it('Should properly create api files', () => {
assert.file([
'api/responses/custom.js'
]);
assert.noFile([
'api/responses/badRequest.js',
'api/responses/created.js',
'api/responses/forbidden.js',
'api/responses/negotiate.js',
'api/responses/notFound.js',
'api/responses/ok.js',
'api/responses/serverError.js',
'api/responses/unauthorized.js'
]);
assert.fileContent('api/responses/custom.js', /const response = data/);
});
it('Should properly create test files', () => {
assert.file([
'test/unit/responses/custom.test.js'
]);
assert.noFile([
'test/unit/responses/badRequest.test.js',
'test/unit/responses/created.test.js',
'test/unit/responses/forbidden.test.js',
'test/unit/responses/negotiate.test.js',
'test/unit/responses/notFound.test.js',
'test/unit/responses/ok.test.js',
'test/unit/responses/serverError.test.js',
'test/unit/responses/unauthorized.test.js'
]);
assert.fileContent('test/unit/responses/custom.test.js', /const Response = require\('\.\.\/\.\.\/\.\.\/api\/responses\/custom'\);/);
});
});
});