Skip to content

Commit

Permalink
Merge ce562d2 into b5b5b78
Browse files Browse the repository at this point in the history
  • Loading branch information
alexjeffburke committed Aug 25, 2019
2 parents b5b5b78 + ce562d2 commit 8c23e4a
Show file tree
Hide file tree
Showing 16 changed files with 225 additions and 146 deletions.
1 change: 1 addition & 0 deletions .eslintignore
Expand Up @@ -4,3 +4,4 @@
/coverage/ /coverage/
/site-build/ /site-build/
/unexpected.js /unexpected.js
/unexpected-deno.js
3 changes: 2 additions & 1 deletion .eslintrc
Expand Up @@ -10,7 +10,8 @@
{ {
"devDependencies": [ "devDependencies": [
"**/test/**/*.js", "**/test/**/*.js",
"**/bootstrap-unexpected-markdown.js" "**/bootstrap-unexpected-markdown.js",
"rollup.tests.js"
], ],
"optionalDependencies": false, "optionalDependencies": false,
"peerDependencies": false "peerDependencies": false
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -8,3 +8,5 @@
/.nyc_output/ /.nyc_output/
/unexpected.js /unexpected.js
/unexpected.js.map /unexpected.js.map
/unexpected.esm.js
/unexpected.esm.js.map
1 change: 1 addition & 0 deletions .prettierignore
Expand Up @@ -3,6 +3,7 @@
/coverage/ /coverage/
/site-build/ /site-build/
/unexpected.js /unexpected.js
/unexpected-deno.js


# Don't battle npm i --save # Don't battle npm i --save
/package.json /package.json
Expand Down
3 changes: 3 additions & 0 deletions .travis.yml
Expand Up @@ -32,6 +32,9 @@ matrix:
- name: Chrome headless - name: Chrome headless
node_js: '8.7.0' node_js: '8.7.0'
env: TARGET=test-chrome-headless env: TARGET=test-chrome-headless
- name: Deno
node_js: '8.7.0'
env: TARGET=test-deno


addons: addons:
chrome: stable chrome: stable
Expand Down
21 changes: 17 additions & 4 deletions Makefile
@@ -1,8 +1,8 @@
REPORTER = dot REPORTER = dot


TARGETS ?= unexpected.js unexpected.js.map TARGETS ?= unexpected.js unexpected.js.map unexpected.esm.js unexpected.esm.js.map
.PHONY: unexpected.js .PHONY: unexpected.js unexpected-deno.js
.SECONDARY: unexpected.js.map .SECONDARY: unexpected.js.map unexpected-deno.js.map


CHEWBACCA_THRESHOLD ?= 25 CHEWBACCA_THRESHOLD ?= 25


Expand Down Expand Up @@ -31,9 +31,15 @@ build/externaltests: externaltests/*


build: build/lib build/test build/externaltests build: build/lib build/test build/externaltests


${TARGETS}: build build/tests.esm.js: build/test
./node_modules/.bin/rollup --config rollup.tests.js > build/tests.esm.js

unexpected.js unexpected.js.map: build
./node_modules/.bin/rollup --config rollup.config.js --sourcemap --format umd --name weknowhow.expect -o unexpected.js build/lib/index.js ./node_modules/.bin/rollup --config rollup.config.js --sourcemap --format umd --name weknowhow.expect -o unexpected.js build/lib/index.js


unexpected.esm.js unexpected.esm.js.map: build
ESM_BUILD=yes ./node_modules/.bin/rollup --config rollup.config.js --sourcemap --format esm --name weknowhow.expect -o unexpected.esm.js build/lib/index.js

test-jasmine: test-jasmine:
./node_modules/.bin/jasmine JASMINE_CONFIG_PATH=test/support/jasmine.json ./node_modules/.bin/jasmine JASMINE_CONFIG_PATH=test/support/jasmine.json


Expand Down Expand Up @@ -90,6 +96,13 @@ test-browserstack-%: ${TARGETS}
test-plugins: ${TARGETS} test-plugins: ${TARGETS}
./node_modules/.bin/fugl --config .fugl.json --reporter html --ci ./node_modules/.bin/fugl --config .fugl.json --reporter html --ci


.PHONY: test-deno
test-deno: ${TARGETS} build/tests.esm.js
if [ ! -f ~/.deno/bin/deno ]; then \
curl -fsSL https://deno.land/x/install/install.sh | sh; \
fi;
~/.deno/bin/deno test-deno/deno-test.js

.PHONY: travis-coverage .PHONY: travis-coverage
travis-coverage: clean coverage travis-coverage: clean coverage
-<coverage/lcov.info ./node_modules/coveralls/bin/coveralls.js -<coverage/lcov.info ./node_modules/coveralls/bin/coveralls.js
Expand Down
9 changes: 7 additions & 2 deletions lib/defaultDepth.js
@@ -1,3 +1,5 @@
const utils = require('./utils');

let defaultDepth = 3; let defaultDepth = 3;
const matchDepthParameter = const matchDepthParameter =
typeof window !== 'undefined' && typeof window !== 'undefined' &&
Expand All @@ -6,7 +8,10 @@ const matchDepthParameter =


if (matchDepthParameter) { if (matchDepthParameter) {
defaultDepth = parseInt(matchDepthParameter[1], 10); defaultDepth = parseInt(matchDepthParameter[1], 10);
} else if (typeof process !== 'undefined' && process.env.UNEXPECTED_DEPTH) { } else {
defaultDepth = parseInt(process.env.UNEXPECTED_DEPTH, 10); const defaultDepthFromEnv = utils.getEnv('UNEXPECTED_DEPTH');
if (defaultDepthFromEnv) {
defaultDepth = parseInt(defaultDepthFromEnv, 10);
}
} }
module.exports = defaultDepth; module.exports = defaultDepth;
8 changes: 3 additions & 5 deletions lib/useFullStackTrace.js
@@ -1,16 +1,14 @@
const Promise = require('unexpected-bluebird'); const Promise = require('unexpected-bluebird');
const utils = require('./utils');

let useFullStackTrace = false; let useFullStackTrace = false;
if (typeof window !== 'undefined' && typeof window.location !== 'undefined') { if (typeof window !== 'undefined' && typeof window.location !== 'undefined') {
useFullStackTrace = !!window.location.search.match( useFullStackTrace = !!window.location.search.match(
/[?&]full-trace=true(?:$|&)/ /[?&]full-trace=true(?:$|&)/
); );
} }


if ( if (utils.getEnv('UNEXPECTED_FULL_TRACE')) {
typeof process !== 'undefined' &&
process.env &&
process.env.UNEXPECTED_FULL_TRACE
) {
Promise.longStackTraces(); Promise.longStackTraces();
useFullStackTrace = true; useFullStackTrace = true;
} }
Expand Down
10 changes: 10 additions & 0 deletions lib/utils.js
@@ -1,4 +1,6 @@
/* eslint-disable no-proto */ /* eslint-disable no-proto */
/* global Deno */

const canSetPrototype = const canSetPrototype =
Object.setPrototypeOf || { __proto__: [] } instanceof Array; Object.setPrototypeOf || { __proto__: [] } instanceof Array;
const greedyIntervalPacker = require('greedy-interval-packer'); const greedyIntervalPacker = require('greedy-interval-packer');
Expand Down Expand Up @@ -358,5 +360,13 @@ const utils = (module.exports = {
} else { } else {
return subject.substring(contextLength, subject.length); return subject.substring(contextLength, subject.length);
} }
},

getEnv(varName) {
if (typeof Deno === 'object' && Deno.permissions().env) {
return Deno.env()[varName];
} else if (typeof process === 'object' && process.env) {
return process.env[varName];
}
} }
}); });
7 changes: 5 additions & 2 deletions package.json
Expand Up @@ -28,7 +28,7 @@
"diff": "4.0.1", "diff": "4.0.1",
"greedy-interval-packer": "1.2.0", "greedy-interval-packer": "1.2.0",
"leven": "2.1.0", "leven": "2.1.0",
"magicpen": "^6.0.2", "magicpen": "git://github.com/alexjeffburke/magicpen.git#feature/deno",
"unexpected-bluebird": "2.9.34-longstack2" "unexpected-bluebird": "2.9.34-longstack2"
}, },
"devDependencies": { "devDependencies": {
Expand Down Expand Up @@ -63,18 +63,21 @@
"prettier": "~1.18.2", "prettier": "~1.18.2",
"rollup": "^1.0.1", "rollup": "^1.0.1",
"rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-commonjs": "^10.0.0",
"rollup-plugin-multi-entry": "^2.1.0",
"rollup-plugin-node-globals": "^1.1.0", "rollup-plugin-node-globals": "^1.1.0",
"rollup-plugin-node-resolve": "^5.0.0", "rollup-plugin-node-resolve": "^5.0.0",
"rollup-plugin-terser": "^5.0.0", "rollup-plugin-terser": "^5.0.0",
"rsvp": "^4.7.0", "rsvp": "^4.7.0",
"serve": "*", "serve": "*",
"unexpected-documentation-site-generator": "^6.0.0", "unexpected-documentation-site-generator": "^6.0.0",
"unexpected-magicpen": "^2.0.0", "unexpected-magicpen": "git://github.com/unexpectedjs/unexpected-magicpen.git#feature/deno",
"unexpected-markdown": "^4.0.0" "unexpected-markdown": "^4.0.0"
}, },
"files": [ "files": [
"unexpected.js", "unexpected.js",
"unexpected.js.map", "unexpected.js.map",
"unexpected.esm.js",
"unexpected.esm.js.map",
"lib", "lib",
"build/lib" "build/lib"
], ],
Expand Down
36 changes: 21 additions & 15 deletions rollup.config.js
@@ -1,5 +1,23 @@
var fs = require('fs'); const fs = require('fs');
var pathModule = require('path'); const pathModule = require('path');

const plugins = [
/* eslint import/no-extraneous-dependencies: ["error", {"devDependencies": true}] */
require('rollup-plugin-commonjs')({
// leave the os require in the tree as that codepath is not
// taken when executed in Deno after magicpen porting work
ignore: process.env.ESM_BUILD ? ['os'] : undefined
}),
require('rollup-plugin-node-resolve')({ preferBuiltins: true }),
require('rollup-plugin-node-globals')(),
require('rollup-plugin-terser').terser({
output: {
comments: function(node, comment) {
return /^!|@preserve|@license|@cc_on/i.test(comment.value);
}
}
})
];


module.exports = { module.exports = {
output: { output: {
Expand All @@ -11,17 +29,5 @@ module.exports = {
.replace(/\s+$/g, '') + .replace(/\s+$/g, '') +
'/\n' '/\n'
}, },
plugins: [ plugins
/* eslint import/no-extraneous-dependencies: ["error", {"devDependencies": true}] */
require('rollup-plugin-commonjs')(),
require('rollup-plugin-node-resolve')(),
require('rollup-plugin-node-globals')(),
require('rollup-plugin-terser').terser({
output: {
comments: function(node, comment) {
return /^!|@preserve|@license|@cc_on/i.test(comment.value);
}
}
})
]
}; };
7 changes: 7 additions & 0 deletions rollup.tests.js
@@ -0,0 +1,7 @@
module.exports = {
input: 'build/test/**/*.js',
output: {
format: 'esm'
},
plugins: require('rollup-plugin-multi-entry')({ exports: false })
};
11 changes: 11 additions & 0 deletions test-deno/deno-setup.js
@@ -0,0 +1,11 @@
import '../node_modules/mocha/mocha.js';
import unexpected from '../unexpected.esm.js';
import unexpectedMagicPen from '../node_modules/unexpected-magicpen/unexpected-magicpen.esm.js';

window.mocha.reporter('spec');
window.mocha.setup('bdd');

window.weknowhow = {
expect: unexpected,
unexpectedMagicPen: unexpectedMagicPen
};
8 changes: 8 additions & 0 deletions test-deno/deno-test.js
@@ -0,0 +1,8 @@
/* globals Deno */
import './deno-setup.js';
import '../test/common.js';
import '../build/tests.esm.js';

window.mocha.run(failureCount => {
Deno.exit(failureCount > 0 ? 1 : 0);
});
35 changes: 21 additions & 14 deletions test/common.js
@@ -1,9 +1,9 @@
/* global unexpected:true, expect:true, expectWithUnexpectedMagicPen:true, weknowhow, jasmine */ /* global unexpected:true, expect:true, expectWithUnexpectedMagicPen:true, weknowhow, jasmine */
/* eslint no-unused-vars: "off" */ /* eslint no-unused-vars: "off" */
unexpected = var unexpected =
typeof weknowhow === 'undefined' typeof window === 'undefined' || !window.weknowhow
? require('../lib/').clone() ? require('../lib/').clone()
: weknowhow.expect.clone(); : window.weknowhow.expect.clone();


unexpected.output.preferredWidth = 80; unexpected.output.preferredWidth = 80;


Expand Down Expand Up @@ -43,23 +43,30 @@ unexpected
}); });
}); });


expect = unexpected.clone(); var expect = unexpected.clone();


expectWithUnexpectedMagicPen = unexpected var expectWithUnexpectedMagicPen = unexpected
.clone() .clone()
.use( .use(
typeof weknowhow === 'undefined' typeof weknowhow === 'undefined'
? require('unexpected-magicpen') ? require('unexpected-magicpen')
: weknowhow.unexpectedMagicPen : weknowhow.unexpectedMagicPen
); );


if (typeof setImmediate !== 'function') { (function(root) {
// eslint-disable-next-line no-global-assign // expose require globals
setImmediate = function(cb) { root.unexpected = unexpected;
setTimeout(cb, 0); root.expect = expect;
}; root.expectWithUnexpectedMagicPen = expectWithUnexpectedMagicPen;
}


if (typeof jasmine !== 'undefined') { if (!root.setImmediate) {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; // eslint-disable-next-line no-global-assign
} root.setImmediate = function(cb) {
setTimeout(cb, 0);
};
}

if (root.jasmine) {
root.jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;
}
})(typeof window !== 'undefined' ? window : global);

0 comments on commit 8c23e4a

Please sign in to comment.