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.
		
		
		
		
		
			
		
			
				
					51 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					51 lines
				
				1.1 KiB
			| 
											3 years ago
										 | 'use strict' | ||
|  | 
 | ||
|  | const test = require('tap').test | ||
|  | const webpack = require('webpack') | ||
|  | const path = require('path') | ||
|  | 
 | ||
|  | test('the library should work with webpack', async (t) => { | ||
|  |   t.plan(1) | ||
|  |   const targetdir = path.resolve(__dirname, '..', '.cache') | ||
|  |   const targetname = path.join(targetdir, 'webpacktest.js') | ||
|  |   const wopts = { | ||
|  |     entry: path.resolve(__dirname, '..', 'index.js'), | ||
|  |     mode: 'production', | ||
|  |     target: 'node', | ||
|  |     output: { | ||
|  |       path: targetdir, | ||
|  |       filename: 'webpacktest.js', | ||
|  |       library: { | ||
|  |         name: 'fastJsonStringify', | ||
|  |         type: 'umd' | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  |   await new Promise((resolve, reject) => { | ||
|  |     webpack(wopts, (err, stats) => { | ||
|  |       if (err) { reject(err) } else { resolve(stats) }; | ||
|  |     }) | ||
|  |   }) | ||
|  |   const build = require(targetname) | ||
|  |   const stringify = build({ | ||
|  |     title: 'webpack should not rename code to be executed', | ||
|  |     type: 'object', | ||
|  |     properties: { | ||
|  |       foo: { | ||
|  |         type: 'string' | ||
|  |       }, | ||
|  |       bar: { | ||
|  |         type: 'boolean' | ||
|  |       } | ||
|  |     }, | ||
|  |     patternProperties: { | ||
|  |       foo: { | ||
|  |         type: 'number' | ||
|  |       } | ||
|  |     } | ||
|  |   }) | ||
|  | 
 | ||
|  |   const obj = { foo: '42', bar: true } | ||
|  |   t.equal(stringify(obj), '{"foo":"42","bar":true}') | ||
|  | }) |