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}')
|
||
|
})
|