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.
		
		
		
		
		
			
		
			
				
					35 lines
				
				927 B
			
		
		
			
		
	
	
					35 lines
				
				927 B
			| 
											3 years ago
										 | 'use strict' | ||
|  | 
 | ||
|  | const build = require('../..') | ||
|  | 
 | ||
|  | function runTests (t, testsuite, skippedTests) { | ||
|  |   for (const scenario of testsuite) { | ||
|  |     const stringify = build(scenario.schema) | ||
|  |     for (const test of scenario.tests) { | ||
|  |       if (skippedTests.indexOf(test.description) !== -1) { | ||
|  |         t.comment('skip %s', test.description) | ||
|  |         continue | ||
|  |       } | ||
|  |       t.test(test.description, (t) => { | ||
|  |         t.plan(1) | ||
|  |         try { | ||
|  |           const output = stringify(test.data) | ||
|  |           t.equal(output, JSON.stringify(test.data), 'compare payloads') | ||
|  |         } catch (err) { | ||
|  |           if (test.valid === false) { | ||
|  |             t.pass('payload is invalid') | ||
|  |           } else { | ||
|  |             t.fail('payload should be valid: ' + err.message) | ||
|  |           } | ||
|  |         } | ||
|  |       }) | ||
|  |     } | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | function counTests (ts, skippedTests) { | ||
|  |   return ts.reduce((a, b) => a + b.tests.length, 0) - skippedTests.length | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = { runTests, counTests } |