41 lines
		
	
	
		
			853 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			853 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| window.common = (function(global) {
 | |
|   const {
 | |
|     Rx: { Observable },
 | |
|     chai,
 | |
|     common = { init: [] }
 | |
|   } = global;
 | |
| 
 | |
|   common.runTests$ = function runTests$({
 | |
|     code,
 | |
|     originalCode,
 | |
|     userTests,
 | |
|     ...rest
 | |
|   }) {
 | |
| 
 | |
|     return Observable.from(userTests)
 | |
|       .map(function(test) {
 | |
| 
 | |
|         /* eslint-disable no-unused-vars */
 | |
|         const assert = chai.assert;
 | |
|         const editor = { getValue() { return originalCode; }};
 | |
|         /* eslint-enable no-unused-vars */
 | |
| 
 | |
|         try {
 | |
|           if (test) {
 | |
|             /* eslint-disable no-eval  */
 | |
|             eval(common.reassembleTest(code, test));
 | |
|             /* eslint-enable no-eval */
 | |
|           }
 | |
|         } catch (e) {
 | |
|           test.err = e.message;
 | |
|         }
 | |
| 
 | |
|         return test;
 | |
|       })
 | |
|       .toArray()
 | |
|       .map(tests => ({ ...rest, tests }));
 | |
|   };
 | |
| 
 | |
|   return common;
 | |
| }(window));
 |