From 2334a619ec002d05dd2936de5a315107d2b0ca60 Mon Sep 17 00:00:00 2001 From: Aryeh Beitz Date: Thu, 21 Dec 2017 15:27:48 +0200 Subject: [PATCH] feat: auto detect composer.lock --- lib/detect.js | 1 + test/acceptance/cli.acceptance.test.js | 42 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/lib/detect.js b/lib/detect.js index e7d0051d6a..1aceda2e8c 100644 --- a/lib/detect.js +++ b/lib/detect.js @@ -22,6 +22,7 @@ var DETECTABLE_FILES = [ 'obj/project.assets.json', 'project.assets.json', /\.csproj$/, + 'composer.lock', ]; // when file is specified with --file, we look it up here diff --git a/test/acceptance/cli.acceptance.test.js b/test/acceptance/cli.acceptance.test.js index 8c7363edde..b4075d3c9d 100644 --- a/test/acceptance/cli.acceptance.test.js +++ b/test/acceptance/cli.acceptance.test.js @@ -655,6 +655,48 @@ function (t) { }); }); +test('`test composer-app` auto-detects composer.lock', function (t) { + chdirWorkspaces(); + return cli.test('composer-app') + .then(function () { + var req = server.popRequest(); + t.equal(req.method, 'POST', 'makes POST request'); + t.match(req.url, '/vuln/composer', 'posts to correct url'); + t.equal(req.body.packageFormatVersion, 'composer:0.0.1', 'specifies package format'); + }); +}); + +test('`test composer-app auto-detects composer`', +function (t) { + chdirWorkspaces(); + var plugin = { + inspect: function () { + return Promise.resolve({package: {}}); + }, + }; + sinon.spy(plugin, 'inspect'); + + sinon.stub(plugins, 'loadPlugin'); + t.teardown(plugins.loadPlugin.restore); + plugins.loadPlugin + .withArgs('composer') + .returns(plugin); + + return cli.test('composer-app') + .then(function () { + var req = server.popRequest(); + t.equal(req.method, 'POST', 'makes POST request'); + t.match(req.url, '/vuln/composer', 'posts to correct url'); + t.same(plugin.inspect.getCall(0).args, + ['composer-app', 'composer.lock', { + args: null, + file: 'composer.lock', + packageManager: 'composer', + },], 'calls composer plugin'); + }); +}); + + test('`test --policy-path`', function (t) { t.plan(3);