it('eslintConfig question shown when codeStyle is `other`', async () => { await promptHook(gasket, context, { prompt }); const question = prompt.getCall(0).args[0][1]; assume(question.name).equals('eslintConfig'); assume(question.when({ codeStyle: 'other' })).true(); assume(question.when({ codeStyle: 'godaddy' })).not.true(); assume(question.when({ codeStyle: 'standard' })).not.true(); assume(question.when({ codeStyle: 'none' })).not.true(); });
describe('eslintConfigIdentifier', () => { it('does stuff', () => { const config = eslintConfigIdentifier('@scope'); assume(config.longName).equals('@scope/eslint-config'); }); });
it('relinks plugin instances to preset children (broken by clone)', async () => { assume(gasket.metadata.presets[0].plugins[0]).equals(gasket.metadata.plugins[0]); gasket.metadata.plugins[0].something = 'changed'; assume(gasket.metadata.presets[0].plugins[0]).property('something', 'changed'); });
it('ignores unexpected values', () => { const fields = Object.assign({}, pkg.fields); assume(() => pkg.extend('bogus')).does.not.throw(); assume(fields).deep.equals(pkg.fields); });
it('rejects with an Error on failure', async () => { createServersModule.yields(errs.create({ https: { message: 'HTTP server failed to start', errno: 'something' } })); await start(); const expected = 'failed to start the http/https servers'; assume(gasketAPI.logger.error).calledWith(expected); assume(debugStub.args[0][0].message).equals(expected); assume(debugStub.args[0][1].https.message).equals('HTTP server failed to start'); });
it('returns object with stdout and parsed data', async function () { stdout = packageManager === 'yarn' ? '{ "data": "1.2.3" }' : '"1.2.3"'; runner = sinon.stub().resolves({ stdout }); PackageManager = manager(runner); const pkg = new PackageManager({ packageManager }); const res = await pkg.info(); assume(res).is.a('object'); assume(res.stdout).equals(stdout); assume(res.data).equals('1.2.3'); });
it('returns modified context with prompt answers', async () => { context = { bogus: true }; const result = await promptHook(gasket, context, { prompt }); assume(result).not.equals(context); assume(result).eqls({ ...context, ...mockAnswers }); });
it('eslintConfig question does not transform for scoped names', async () => { await promptHook(gasket, context, { prompt }); const question = prompt.getCall(0).args[0][1]; assume(question.name).equals('eslintConfig'); assume(question.transformer('@scope/config')).equals('@scope/config'); assume(question.transformer('@scope')).equals('@scope'); });
it('returns unmodified context if no prompts', async () => { context = { codeStyle: 'godaddy' }; const result = await promptHook(gasket, context, { prompt }); assume(result).equals(context); });
it('addStylelint question shown only codeStyle has support', async () => { await promptHook(gasket, context, { prompt }); const question = prompt.getCall(0).args[0][2]; assume(question.name).equals('addStylelint'); assume(question.when({ codeStyle: 'other' })).true(); assume(question.when({ codeStyle: 'godaddy' })).true(); assume(question.when({ codeStyle: 'standard' })).not.true(); });
it('eslintConfig question shown when codeStyle is `other`', async () => { await promptHook(gasket, context, { prompt }); const question = prompt.getCall(0).args[0][1]; assume(question.name).equals('eslintConfig'); assume(question.when({ codeStyle: 'other' })).true(); assume(question.when({ codeStyle: 'godaddy' })).not.true(); assume(question.when({ codeStyle: 'standard' })).not.true(); assume(question.when({ codeStyle: 'none' })).not.true(); });
it('rejects with an Error on failure', async () => { createServersModule.yields(errs.create({ https: { message: 'HTTP server failed to start', errno: 'something' } })); await start(); const expected = 'failed to start the http/https servers'; assume(gasketAPI.logger.error).calledWith(expected); assume(debugStub.args[0][0].message).equals(expected); assume(debugStub.args[0][1].https.message).equals('HTTP server failed to start'); });