uritemplate-test.js
912 Bytes
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]);
});
});
});
});