32 lines
912 B
JavaScript
32 lines
912 B
JavaScript
var template, expect, examples;
|
|
|
|
if (typeof require !== 'undefined') {
|
|
template = require('../lib/url-template.js');
|
|
expect = require("expect.js");
|
|
examples = require('../uritemplate-test/spec-examples-by-section.json');
|
|
} else {
|
|
template = window.urltemplate;
|
|
expect = window.expect;
|
|
examples = window.examples;
|
|
}
|
|
|
|
function createTestContext(c) {
|
|
return function (t, r) {
|
|
if (typeof r === 'string') {
|
|
expect(template.parse(t).expand(c)).to.eql(r);
|
|
} else {
|
|
expect(r.indexOf(template.parse(t).expand(c)) >= 0).to.be.ok();
|
|
}
|
|
};
|
|
}
|
|
|
|
describe('spec-examples', function () {
|
|
Object.keys(examples).forEach(function (section) {
|
|
var assert = createTestContext(examples[section].variables);
|
|
examples[section].testcases.forEach(function (testcase) {
|
|
it(section + ' ' + testcase[0], function () {
|
|
assert(testcase[0], testcase[1]);
|
|
});
|
|
});
|
|
});
|
|
});
|