Skip to content

Commit

Permalink
fix(eslint-configs): passed configs through from cucumber more effect…
Browse files Browse the repository at this point in the history
…ively, preventing config loss
  • Loading branch information
travi committed Jul 29, 2022
1 parent a0d3937 commit c32bcf9
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 53 deletions.
3 changes: 2 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"sinon": "14.0.0"
},
"dependencies": {
"@form8ion/cucumber-scaffolder": "2.1.0",
"@form8ion/cucumber-scaffolder": "^2.1.0",
"deepmerge": "^4.2.2",
"make-dir": "^3.0.0",
"mustache": "^4.0.0"
},
Expand Down
54 changes: 29 additions & 25 deletions src/scaffolder-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import deepmerge from 'deepmerge';

import {assert} from 'chai';
import sinon from 'sinon';
import any from '@travi/any';

import * as serverScaffolder from './server';
import * as documentationScaffolder from './documentation';
import * as testingScaffolder from './testing';
Expand All @@ -13,6 +16,7 @@ suite('scaffolder', () => {
setup(() => {
sandbox = sinon.createSandbox();

sandbox.stub(deepmerge, 'all');
sandbox.stub(serverScaffolder, 'default');
sandbox.stub(documentationScaffolder, 'default');
sandbox.stub(testingScaffolder, 'default');
Expand All @@ -28,32 +32,32 @@ suite('scaffolder', () => {
const testingResults = {...any.simpleObject(), devDependencies: testingDevDependencies};
documentationScaffolder.default.returns(documentation);
testingScaffolder.default.withArgs({tests, projectRoot}).resolves(testingResults);

assert.deepEqual(
await scaffold({projectRoot, projectName, tests}),
{
dependencies: [
'@hapi/glue',
'@hapi/good',
'hapi-graceful-shutdown-plugin',
'dotenv-safe',
'good-bunyan',
'bunyan'
],
devDependencies: [
'webpack',
'webpack-cli',
...testingDevDependencies
],
scripts: {
build: 'npm-run-all --print-label --parallel build:*',
'build:server': 'webpack --env production --config webpack.config.server.babel.js',
start: 'node ./lib/server',
'pretest:integration': 'run-s build'
const mergedResults = any.simpleObject();
deepmerge.all
.withArgs([
{
dependencies: [
'@hapi/glue',
'@hapi/good',
'hapi-graceful-shutdown-plugin',
'dotenv-safe',
'good-bunyan',
'bunyan'
],
devDependencies: ['webpack', 'webpack-cli'],
scripts: {
build: 'npm-run-all --print-label --parallel build:*',
'build:server': 'webpack --env production --config webpack.config.server.babel.js',
start: 'node ./lib/server',
'pretest:integration': 'run-s build'
},
documentation
},
documentation
}
);
testingResults
])
.returns(mergedResults);

assert.equal(await scaffold({projectRoot, projectName, tests}), mergedResults);
assert.calledWith(serverScaffolder.default, {projectRoot, projectName});
});
});
43 changes: 22 additions & 21 deletions src/scaffolder.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import deepmerge from 'deepmerge';

import scaffoldServer from './server';
import scaffoldDocumentation from './documentation';
import scaffoldTesting from './testing';
Expand All @@ -8,26 +10,25 @@ export async function scaffold({projectRoot, projectName, tests}) {
scaffoldServer({projectRoot, projectName})
]);

return {
dependencies: [
'@hapi/glue',
'@hapi/good',
'hapi-graceful-shutdown-plugin',
'dotenv-safe',
'good-bunyan',
'bunyan'
],
devDependencies: [
'webpack',
'webpack-cli',
...testingResults.devDependencies
],
scripts: {
build: 'npm-run-all --print-label --parallel build:*',
'build:server': 'webpack --env production --config webpack.config.server.babel.js',
start: 'node ./lib/server',
'pretest:integration': 'run-s build'
return deepmerge.all([
{
dependencies: [
'@hapi/glue',
'@hapi/good',
'hapi-graceful-shutdown-plugin',
'dotenv-safe',
'good-bunyan',
'bunyan'
],
devDependencies: ['webpack', 'webpack-cli'],
scripts: {
build: 'npm-run-all --print-label --parallel build:*',
'build:server': 'webpack --env production --config webpack.config.server.babel.js',
start: 'node ./lib/server',
'pretest:integration': 'run-s build'
},
documentation: scaffoldDocumentation()
},
documentation: scaffoldDocumentation()
};
testingResults
]);
}
11 changes: 6 additions & 5 deletions src/testing.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import {resolve} from 'path';
import {promises} from 'fs';
import deepmerge from 'deepmerge';
import {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';

import mkdir from '../thirdparty-wrappers/make-dir';

export default async function ({projectRoot, tests}) {
Expand All @@ -21,11 +23,10 @@ export default async function ({projectRoot, tests}) {
)
]);

return {
scripts: cucumberResults.scripts,
devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],
eslintConfigs: cucumberResults.eslintConfigs
};
return deepmerge.all([
{devDependencies: ['@travi/any', 'http-status-codes']},
cucumberResults
]);
}

return {};
Expand Down

0 comments on commit c32bcf9

Please sign in to comment.