Javascript.es6.api_test.mustache Maven / Gradle / Ivy
{{>licenseInfo}}
(function(root, factory) {
{{#loadTestDataFromFile}}
var testDataFile = process.env.TEST_DATA_FILE
? process.env.TEST_DATA_FILE
: '{{testDataFile}}';
{{/loadTestDataFromFile}}
if (typeof define === 'function' && define.amd) {
// AMD.
define(['expect.js'{{#loadTestDataFromFile}}, 'json-pointer', '{{#invokerPackage}}../{{/invokerPackage}}../assert-equals'{{/loadTestDataFromFile}}, '../{{#invokerPackage}}../{{/invokerPackage}}../{{sourceFolder}}/{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}index'{{#loadTestDataFromFile}}, testDataFile{{/loadTestDataFromFile}}], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports, like Node.
factory(require('expect.js'){{#loadTestDataFromFile}}, require('json-pointer'), require('{{#invokerPackage}}../{{/invokerPackage}}../assert-equals'){{/loadTestDataFromFile}}, require('../{{#invokerPackage}}../{{/invokerPackage}}../{{sourceFolder}}/{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}index'){{#loadTestDataFromFile}}, require(testDataFile){{/loadTestDataFromFile}});
} else {
// Browser globals (root is window)
{{#loadTestDataFromFile}}
// TODO: load browser test data from file. Maybe via FileSystem (Mozilla, chrome.fileSystem)?
var testData = null;
{{/loadTestDataFromFile}}
factory(root.expect{{#loadTestDataFromFile}}, root.JsonPointer, root.assertEquals{{/loadTestDataFromFile}}, root.{{moduleName}}{{#loadTestDataFromFile}}, testData{{/loadTestDataFromFile}});
}
}(this, function(expect{{#loadTestDataFromFile}}, pointer, assertEquals{{/loadTestDataFromFile}}, {{moduleName}}{{#loadTestDataFromFile}}, testData{{/loadTestDataFromFile}}) {
'use strict';
var instance;
{{#loadTestDataFromFile}}
var testDataCache;
function getTestData(pointer) {
return testDataCache.get('{{#invokerPackage}}/{{invokerPackage}}{{/invokerPackage}}/{{classname}}' + pointer);
}
before(function() {
testDataCache = pointer(testData);
});
{{/loadTestDataFromFile}}
beforeEach(function() {
instance = new {{moduleName}}.{{classname}}();
});
describe({{#invokerPackage}}'{{invokerPackage}}'{{/invokerPackage}}{{^invokerPackage}}'(package)'{{/invokerPackage}}, function() {
describe('{{classname}}', function() {
{{#operations}}
{{#operation}}
describe('{{operationId}}', function() {
it('should call {{operationId}} successfully', function(done) {
{{^loadTestDataFromFile}}
// TODO: uncomment{{#hasParams}}, update parameter values for{{/hasParams}} {{operationId}} call{{#returnType}} and complete the assertions{{/returnType}}
/*
{{/loadTestDataFromFile}}
{{#requiredParams}}
{{#vendorExtensions.x-cache-current-param}}
var {{paramName}} = {{!
}}{{#loadTestDataFromFile}}getTestData('/{{operationId}}/{{paramName}}');{{/loadTestDataFromFile}}{{!
}}{{^loadTestDataFromFile}}{{>api-test-param}}{{#isPrimitiveType}};{{/isPrimitiveType}}{{/loadTestDataFromFile}}
{{/vendorExtensions.x-cache-current-param}}
{{/requiredParams}}
{{#hasOptionalParams}}
var opts = {};
{{#allParams}}
{{^required}}
{{#vendorExtensions.x-cache-current-param}}
opts.{{paramName}} = {{!
}}{{#loadTestDataFromFile}}getTestData('/{{operationId}}/{{paramName}}');{{/loadTestDataFromFile}}{{!
}}{{^loadTestDataFromFile}}{{>api-test-param}}{{#isPrimitiveType}};{{/isPrimitiveType}}{{/loadTestDataFromFile}}
{{/vendorExtensions.x-cache-current-param}}
{{/required}}
{{/allParams}}
{{/hasOptionalParams}}
instance.{{operationId}}({{vendorExtensions.x-codegen-arg-list}}{{^usePromises}}{{#hasParams}}, {{/hasParams}}function(error, data, response){{/usePromises}}{{#usePromises}}).then(function(data){{/usePromises}} {
{{^usePromises}}
if (error) {
done(error);
return;
}
{{/usePromises}}
{{#returnType}}
{{#loadTestDataFromFile}}
let expected = getTestData('/{{operationId}}/response');
assertEquals(expected, data);
{{/loadTestDataFromFile}}
{{^loadTestDataFromFile}}
// TODO: update response assertions
{{#vendorExtensions.x-is-container}}
let dataCtr = data;
expect(dataCtr).to.be.an({{#isListContainer}}Array{{/isListContainer}}{{#isMapContainer}}Object{{/isMapContainer}});
expect(dataCtr).to.not.be.empty();
for (let p in dataCtr) {
let data = dataCtr[p];
{{/vendorExtensions.x-is-container}}
{{#vendorExtensions.x-is-container}} {{/vendorExtensions.x-is-container}}expect(data).to.be.a({{^returnTypeIsPrimitive}}{{moduleName}}.{{/returnTypeIsPrimitive}}{{vendorExtensions.x-expect-js-type}});
{{#returnTypeIsPrimitive}}
{{#vendorExtensions.x-is-container}} {{/vendorExtensions.x-is-container}}{{^loadTestDataFromFile}}// {{/loadTestDataFromFile}}expect(data).to.be({{>api-test-response}});
{{/returnTypeIsPrimitive}}
{{^returnTypeIsPrimitive}}
{{#vendorExtensions.x-is-container}}
{{#vendorExtensions.x-indent}}
{{>api-test-response-complex}}{{!
}}{{/vendorExtensions.x-indent}}{{!
}}{{/vendorExtensions.x-is-container}}{{!
}}{{^vendorExtensions.x-is-container}}{{!
}}{{>api-test-response-complex}}{{!
}}{{/vendorExtensions.x-is-container}}{{!
}}{{/returnTypeIsPrimitive}}{{!
}}{{#vendorExtensions.x-is-container}}{{!
}} }
{{/vendorExtensions.x-is-container}}
{{/loadTestDataFromFile}}
{{/returnType}}
done();
}{{#usePromises}}, function(error) {
done(error);
}{{/usePromises}});
{{^loadTestDataFromFile}}
*/
// TODO: uncomment and complete method invocation above, then delete this line and the next:
done();
{{/loadTestDataFromFile}}
});
});
{{/operation}}
{{/operations}}
});
});
}));
© 2015 - 2024 Weber Informatics LLC | Privacy Policy