it('calls info with the correct package manager', async function () { stdout = '{}'; runner = sinon.stub().resolves({ stdout }); PackageManager = manager(runner); const pkg = new PackageManager({ packageManager }); await pkg.info(); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains(packageManager); assume(runner.firstCall.args[1]).contains('info'); });
describe('.spawnYarn', function () { it('is a function', function () { assume(PackageManager.spawnYarn).is.a('function'); }); it('calls the yarn binary', async function () { const res = await PackageManager.spawnYarn(['install'], { cwd: '.' }); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains('yarn'); assume(res).is.a('object'); assume(res.stdout).equals(stdout); }); });
it('runs after the lifecycle plugin', function () { assume(Plugin.hooks.init.timing).property('after'); assume(Plugin.hooks.init.timing.after).contains('@gasket/plugin-lifecycle'); });
describe(`[${packageManager}] install`, function () { it('is a function', function () { const pkg = new PackageManager({ packageManager }); assume(pkg.install).is.a('asyncfunction'); }); it('calls install with the correct package manager', async function () { const pkg = new PackageManager({ packageManager }); const res = await pkg.install(); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains(packageManager); assume(runner.firstCall.args[1]).contains('install'); assume(res).is.a('object'); assume(res.stdout).equals(stdout); }); });
it('exits on action errors', async () => { actionStubs.mkDir.rejects(new Error('YOUR DRIVE EXPLODED!')); const cmd = new CreateCommand(['myapp', '--presets=nextjs']); try { await cmd.run(); } catch (e) { assume(e.message).contains('YOUR DRIVE EXPLODED!'); } });
it('calls info with the --json flag', async function () { stdout = '{}'; runner = sinon.stub().resolves({ stdout }); PackageManager = manager(runner); const pkg = new PackageManager({ packageManager }); await pkg.info(); assume(runner.called).is.true(); assume(runner.firstCall.args[1]).contains('--json'); });
describe('.spawnNpm', function () { it('is a function', function () { assume(PackageManager.spawnNpm).is.a('function'); }); it('calls the npm binary', async function () { const res = await PackageManager.spawnNpm(['install'], { cwd: '.' }); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains('npm'); assume(res).is.a('object'); assume(res.stdout).equals(stdout); }); });
describe(`[${packageManager}] link`, function () { it('is a function', function () { const pkg = new PackageManager({ packageManager }); assume(pkg.link).is.a('asyncfunction'); }); it('calls link with the correct package manager', async function () { const pkg = new PackageManager({ packageManager }); const res = await pkg.link(); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains(packageManager); assume(runner.firstCall.args[1]).contains('link'); assume(res).is.a('object'); assume(res.stdout).equals(stdout); }); });
it('calls info with the --json flag', async function () { stdout = '{}'; runner = sinon.stub().resolves({ stdout }); PackageManager = manager(runner); const pkg = new PackageManager({ packageManager }); await pkg.info(); assume(runner.called).is.true(); assume(runner.firstCall.args[1]).contains('--json'); });
it('exits on action errors', async () => { actionStubs.mkDir.rejects(new Error('YOUR DRIVE EXPLODED!')); const cmd = new CreateCommand(['myapp', '--presets=nextjs']); try { await cmd.run(); } catch (e) { assume(e.message).contains('YOUR DRIVE EXPLODED!'); } });
it('calls info with the correct package manager', async function () { stdout = '{}'; runner = sinon.stub().resolves({ stdout }); PackageManager = manager(runner); const pkg = new PackageManager({ packageManager }); await pkg.info(); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains(packageManager); assume(runner.firstCall.args[1]).contains('info'); });
describe('.spawnYarn', function () { it('is a function', function () { assume(PackageManager.spawnYarn).is.a('function'); }); it('calls the yarn binary', async function () { const res = await PackageManager.spawnYarn(['install'], { cwd: '.' }); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains('yarn'); assume(res).is.a('object'); assume(res.stdout).equals(stdout); }); });
describe('.spawnNpm', function () { it('is a function', function () { assume(PackageManager.spawnNpm).is.a('function'); }); it('calls the npm binary', async function () { const res = await PackageManager.spawnNpm(['install'], { cwd: '.' }); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains('npm'); assume(res).is.a('object'); assume(res.stdout).equals(stdout); }); });
it('runs after the lifecycle plugin', function () { assume(Plugin.hooks.init.timing).property('after'); assume(Plugin.hooks.init.timing.after).contains('@gasket/plugin-lifecycle'); });
describe(`[${packageManager}] link`, function () { it('is a function', function () { const pkg = new PackageManager({ packageManager }); assume(pkg.link).is.a('asyncfunction'); }); it('calls link with the correct package manager', async function () { const pkg = new PackageManager({ packageManager }); const res = await pkg.link(); assume(runner.called).is.true(); assume(runner.firstCall.args[0]).contains(packageManager); assume(runner.firstCall.args[1]).contains('link'); assume(res).is.a('object'); assume(res.stdout).equals(stdout); }); });