it('returns the handler app', async function () { const result = await plugin.hooks.createServers(gasket, {}); assume(result).deep.equals({ handler: app }); });
describe('.log', function () { it('proxies to winston.log with predefined level', async function () { const stub = sinon.stub(log.winston, 'log'); assume(log.log).to.be.a('function'); log.log('Testing'); assume(stub.getCall(0).args).to.deep.equal(['debug', 'Testing']); }); });
it('[function] ignores falsey values returned from functions', () => { const fields = Object.assign({}, pkg.fields); assume(() => { // eslint-disable-next-line max-nested-callbacks pkg.extend(function () { return false; }); }).does.not.throw(); assume(fields).deep.equals(pkg.fields); });
it('[semver] appends to blame when identical semver ranges provided', () => { pkg.source = { name: 'First plugin' }; pkg.add('dependencies', { 'some-pkg': '^1.2.0' }); assume(pkg.fields.dependencies).eqls({ 'some-pkg': '^1.2.0' }); pkg.source = { name: 'Second plugin' }; pkg.add('dependencies', { 'some-pkg': '^1.2.0' }); assume(pkg.fields.dependencies).eqls({ 'some-pkg': '^1.2.0' }); assume(pkg.blame.get(`dependencies.some-pkg`)).deep.equals([ 'First plugin', 'Second plugin' ]); });
it('sets localPresets from flags with multiple entries', () => { results = makeCreateContext(argv, { 'preset-path': ['../bogus/path', '../test/path'] }); assume(results.localPresets).deep.equals(['../bogus/path', '../test/path']); });
it('supports multiple presets', async () => { mockContext.rawPresets = ['@gasket/preset-bogus@^1.0.0', '@gasket/preset-all-i-ever-wanted@^2.0.0']; await loadPreset(mockContext); assume(mockContext).to.have.deep.property('presets', ['@gasket/bogus', '@gasket/all-i-ever-wanted']); assume(mockContext.presetInfos).to.lengthOf(2); });
it('sets preset short name from flags', async () => { await loadPreset(mockContext); assume(mockContext).to.have.deep.property('presets', ['@gasket/bogus']); });
it('sets localPresets to empty array if not defined', () => { results = makeCreateContext(argv, { presets: ['@gasket/preset-bogus@^1.2.3'] }); assume(results.localPresets).deep.equals([]); });
it('adds presetInfos to context', async () => { await loadPreset(mockContext); assume(mockContext).to.have.deep.property('presetInfos', [{ ...mockPkgs['@gasket/preset-bogus@^1.0.0'], from: 'cli', rawName: '@gasket/preset-bogus@^1.0.0', presets: [{ package: { name: '@gasket/preset-some', version: '1.0.1' }, from: '@gasket/preset-bogus', rawName: '@gasket/preset-some@1.0.1' }] }]); });
it('ignores unexpected values', () => { const fields = Object.assign({}, pkg.fields); assume(() => pkg.extend('bogus')).does.not.throw(); assume(fields).deep.equals(pkg.fields); });
it('supports multiple presets', async () => { mockContext.rawPresets = ['@gasket/preset-bogus@^1.0.0', '@gasket/preset-all-i-ever-wanted@^2.0.0']; await loadPreset(mockContext); assume(mockContext).to.have.deep.property('presets', ['@gasket/bogus', '@gasket/all-i-ever-wanted']); assume(mockContext.presetInfos).to.lengthOf(2); });
it('ignores unexpected values', () => { const fields = Object.assign({}, pkg.fields); assume(() => pkg.extend('bogus')).does.not.throw(); assume(fields).deep.equals(pkg.fields); });
describe('.log', function () { it('proxies to winston.log with predefined level', async function () { const stub = sinon.stub(log.winston, 'log'); assume(log.log).to.be.a('function'); log.log('Testing'); assume(stub.getCall(0).args).to.deep.equal(['debug', 'Testing']); }); });
it('[function] ignores falsey values returned from functions', () => { const fields = Object.assign({}, pkg.fields); assume(() => { // eslint-disable-next-line max-nested-callbacks pkg.extend(function () { return false; }); }).does.not.throw(); assume(fields).deep.equals(pkg.fields); });
it('adds presetInfos to context', async () => { await loadPreset(mockContext); assume(mockContext).to.have.deep.property('presetInfos', [{ ...mockPkgs['@gasket/preset-bogus@^1.0.0'], from: 'cli', rawName: '@gasket/preset-bogus@^1.0.0', presets: [{ package: { name: '@gasket/preset-some', version: '1.0.1' }, from: '@gasket/preset-bogus', rawName: '@gasket/preset-some@1.0.1' }] }]); });