You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
912 B
32 lines
912 B
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]); |
|
}); |
|
}); |
|
}); |
|
});
|
|
|