Skip to content

Commit

Permalink
added test for nested selectors, generalised some test filters
Browse files Browse the repository at this point in the history
  • Loading branch information
bholloway committed Sep 8, 2018
1 parent b87fe50 commit b4ed4d6
Show file tree
Hide file tree
Showing 17 changed files with 640 additions and 49 deletions.
3 changes: 2 additions & 1 deletion package.json
Expand Up @@ -8,7 +8,8 @@
"scripts": {
"lint": "jshint packages --exclude **/node_modules",
"test:unit": "tape **/*.spec.js | tap-diff",
"test:e2e": "tape test | tap-diff"
"test:e2e": "tape test | tap-diff",
"debug:e2e": "node $NODE_DEBUG_OPTION $(npm bin)/tape test | tap-diff"
},
"devDependencies": {
"blue-tape": "^1.0.0",
Expand Down
Expand Up @@ -70,7 +70,8 @@ module.exports = {
map: !!JSON.parse(process.env.DEVTOOL),
// the following optimisations are fine but e2e assertions are easier without them
cssDeclarationSorter: false,
normalizeUrl: false
normalizeUrl: false,
discardUnused: false
}
})
]
Expand Down
6 changes: 3 additions & 3 deletions test/cases/absolute-asset.js
Expand Up @@ -12,7 +12,7 @@ const {all, testDefault, testAbsolute, testDebug, testKeepQuery, testRoot, testW
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {moduleNotFound} = require('./common/partials');
const {
onlyVersion, onlyOS, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent,
onlyMeta, onlyOS, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent,
assertSourceMapComment, assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles, assertStdout
} = require('../lib/assert');

Expand Down Expand Up @@ -88,10 +88,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({cwd, meta: {engine, asset, version: {webpack}}}) => {
Expand Down
6 changes: 3 additions & 3 deletions test/cases/adjacent-asset.js
Expand Up @@ -12,7 +12,7 @@ const {testDefault, testAbsolute, testDebug, testKeepQuery, testWithLabel} = req
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {moduleNotFound} = require('./common/partials');
const {
onlyVersion, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
onlyMeta, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles, assertStdout
} = require('../lib/assert');

Expand Down Expand Up @@ -78,10 +78,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({meta: {engine, version: {webpack}}}) => {
Expand Down
10 changes: 5 additions & 5 deletions test/cases/common/partials.js
Expand Up @@ -2,18 +2,18 @@

const {all, testDefault, testSilent} = require('./tests');
const {buildDevNormal, buildDevBail, buildProdNormal, buildProdBail} = require('./builds');
const {onlyVersion, assertWebpackOk, assertWebpackNotOk, assertStdout} = require('../../lib/assert');
const {onlyMeta, assertWebpackOk, assertWebpackNotOk, assertStdout} = require('../../lib/assert');

// Allow 1-2 errors
// Allow 1-N errors
// - webpack may repeat errors with a header line taken from the parent loader
const assertModuleNotFoundError = assertStdout('"Module not found" error')([1, 2])`
const assertModuleNotFoundError = assertStdout('"Module not found" error')([1, 100])`
^[ ]*ERROR[^\n]*
[ ]*Module build failed(:|[^\n]*\n)[ ]*ModuleNotFoundError: Module not found:
`;

exports.moduleNotFound =
all(testDefault, testSilent)(
onlyVersion('webpack=1')(
onlyMeta('meta.version.webpack ==1')(
buildDevBail(
assertWebpackNotOk
),
Expand All @@ -29,7 +29,7 @@ exports.moduleNotFound =
assertModuleNotFoundError
)
),
onlyVersion('webpack>1')(
onlyMeta('meta.version.webpack > 1')(
buildDevNormal(
assertWebpackNotOk,
assertModuleNotFoundError
Expand Down
4 changes: 2 additions & 2 deletions test/cases/common/tests.js
Expand Up @@ -4,7 +4,7 @@ const {join} = require('path');
const sequence = require('promise-compose');
const {test, layer, meta, env} = require('test-my-cli');

const {onlyVersion, assertStderr} = require('../../lib/assert');
const {onlyMeta, assertStderr} = require('../../lib/assert');

exports.all = (...tests) => (...rest) =>
sequence(...tests.map((test) => test(...rest)));
Expand Down Expand Up @@ -56,7 +56,7 @@ exports.testDefault = (...rest) =>

// css-loader deprecated options.root around the time of webpack@4
exports.testAbsolute = (...rest) =>
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
test(
'absolute=true',
layer()(
Expand Down
6 changes: 3 additions & 3 deletions test/cases/deep-asset.js
Expand Up @@ -12,7 +12,7 @@ const {testDefault, testAbsolute, testDebug, testKeepQuery, testWithLabel} = req
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {moduleNotFound} = require('./common/partials');
const {
onlyVersion, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
onlyMeta, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles, assertStdout
} = require('../lib/assert');

Expand Down Expand Up @@ -78,10 +78,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({meta: {engine, version: {webpack}}}) => {
Expand Down
6 changes: 3 additions & 3 deletions test/cases/http-asset.js
Expand Up @@ -11,7 +11,7 @@ const {withCacheBase} = require('../lib/higher-order');
const {testDefault, testAbsolute, testDebug, testKeepQuery} = require('./common/tests');
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {
onlyVersion, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
onlyMeta, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles
} = require('../lib/assert');

Expand Down Expand Up @@ -77,10 +77,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({meta: {engine, version: {webpack}}}) => {
Expand Down
6 changes: 3 additions & 3 deletions test/cases/immediate-asset.js
Expand Up @@ -12,7 +12,7 @@ const {testDefault, testAbsolute, testDebug, testKeepQuery, testWithLabel} = req
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {moduleNotFound} = require('./common/partials');
const {
onlyVersion, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
onlyMeta, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles, assertStdout
} = require('../lib/assert');

Expand Down Expand Up @@ -78,10 +78,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({meta: {engine, version: {webpack}}}) => {
Expand Down
18 changes: 9 additions & 9 deletions test/cases/misconfiguration.js
Expand Up @@ -13,7 +13,7 @@ const {
} = require('./common/tests');
const {buildDevNormal, buildDevBail, buildProdNormal, buildProdBail} = require('./common/builds');
const {
onlyVersion, assertWebpackOk, assertWebpackNotOk, assertNoErrors, assertNoMessages, assertContent, assertStdout
onlyMeta, assertWebpackOk, assertWebpackNotOk, assertNoErrors, assertNoMessages, assertContent, assertStdout
} = require('../lib/assert');

const assertContentDev = compose(assertContent(/;\s*}/g, ';\n}'), outdent)`
Expand Down Expand Up @@ -81,7 +81,7 @@ module.exports = test(
}),
testEngineFail(
all(testDefault, testSilent)(
onlyVersion('webpack=1')(
onlyMeta('meta.version.webpack == 1')(
buildDevBail(
assertWebpackNotOk
),
Expand All @@ -97,7 +97,7 @@ module.exports = test(
assertCssError
)
),
onlyVersion('webpack>1')(
onlyMeta('meta.version.webpack > 1')(
buildDevNormal(
assertWebpackNotOk,
assertCssError
Expand Down Expand Up @@ -201,7 +201,7 @@ module.exports = test(
),
testNonFunctionJoin(
all(testDefault, testSilent)(
onlyVersion('webpack=1')(
onlyMeta('meta.version.webpack == 1')(
buildDevBail(
assertWebpackNotOk
),
Expand All @@ -217,7 +217,7 @@ module.exports = test(
assertNonFunctionJoinError
)
),
onlyVersion('webpack>1')(
onlyMeta('meta.version.webpack > 1')(
buildDevNormal(
assertWebpackNotOk,
assertNonFunctionJoinError
Expand All @@ -231,7 +231,7 @@ module.exports = test(
),
testWrongArityJoin(
all(testDefault, testSilent)(
onlyVersion('webpack=1')(
onlyMeta('meta.version.webpack == 1')(
buildDevBail(
assertWebpackNotOk
),
Expand All @@ -247,7 +247,7 @@ module.exports = test(
assertWrongArityJoinError
)
),
onlyVersion('webpack>1')(
onlyMeta('meta.version.webpack > 1')(
buildDevNormal(
assertWebpackNotOk,
assertWrongArityJoinError
Expand Down Expand Up @@ -291,7 +291,7 @@ module.exports = test(
),
testNonExistentRoot(
all(testDefault, testSilent)(
onlyVersion('webpack=1')(
onlyMeta('meta.version.webpack == 1')(
buildDevBail(
assertWebpackNotOk
),
Expand All @@ -307,7 +307,7 @@ module.exports = test(
assertNonExistentRootError
)
),
onlyVersion('webpack>1')(
onlyMeta('meta.version.webpack > 1')(
buildDevNormal(
assertWebpackNotOk,
assertNonExistentRootError
Expand Down
6 changes: 3 additions & 3 deletions test/cases/module-relative-asset.js
Expand Up @@ -12,7 +12,7 @@ const {testDefault, testAbsolute, testDebug, testKeepQuery, testWithLabel} = req
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {moduleNotFound} = require('./common/partials');
const {
onlyVersion, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
onlyMeta, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles
} = require('../lib/assert');

Expand Down Expand Up @@ -78,10 +78,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({meta: {engine, version: {webpack}}}) => {
Expand Down
6 changes: 3 additions & 3 deletions test/cases/nested-import-mixed-quotes.js
Expand Up @@ -11,7 +11,7 @@ const {withCacheBase} = require('../lib/higher-order');
const {testDefault, testAbsolute, testDebug, testKeepQuery} = require('./common/tests');
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {
onlyVersion, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
onlyMeta, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles
} = require('../lib/assert');

Expand Down Expand Up @@ -61,10 +61,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({meta: {engine, version: {webpack}}}) => {
Expand Down
6 changes: 3 additions & 3 deletions test/cases/root-relative-asset.js
Expand Up @@ -12,7 +12,7 @@ const {testDefault, testAbsolute, testDebug, testKeepQuery, testWithLabel} = req
const {buildDevNormal, buildDevNoUrl, buildProdNormal, buildProdNoUrl, buildProdNoDevtool} = require('./common/builds');
const {moduleNotFound} = require('./common/partials');
const {
onlyVersion, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
onlyMeta, assertWebpackOk, assertNoErrors, assertNoMessages, assertContent, assertSourceMapComment,
assertSourceMapContent, assertNoSourceMap, assertAssetUrls, assertAssetFiles, assertStdout
} = require('../lib/assert');

Expand Down Expand Up @@ -78,10 +78,10 @@ const assertContentProd = compose(assertContent(), trim)`
`;

const assertSourcemapProd = sequence(
onlyVersion('webpack<4')(
onlyMeta('meta.version.webpack < 4')(
assertSourceMapComment(true)
),
onlyVersion('webpack>=4')(
onlyMeta('meta.version.webpack >= 4')(
assertSourceMapComment(false)
),
assertSourceMapContent(({meta: {engine, version: {webpack}}}) => {
Expand Down

0 comments on commit b4ed4d6

Please sign in to comment.