33 lines
		
	
	
		
			912 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			33 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]); | ||
|  |       }); | ||
|  |     }); | ||
|  |   }); | ||
|  | }); |