From 4b7b4301f47e6cd9080b79174640cb57a3b78306 Mon Sep 17 00:00:00 2001 From: Konstantin Yegupov Date: Mon, 8 Apr 2019 11:23:35 +0100 Subject: [PATCH] test: monitor --all-sub-projects with multiple targets --- test/acceptance/cli.acceptance.test.ts | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/test/acceptance/cli.acceptance.test.ts b/test/acceptance/cli.acceptance.test.ts index 89d96d92f0..c9f68c9b37 100644 --- a/test/acceptance/cli.acceptance.test.ts +++ b/test/acceptance/cli.acceptance.test.ts @@ -2342,6 +2342,47 @@ test('`monitor gradle-app --all-sub-projects`', async (t) => { }], 'calls gradle plugin'); }); +test('`monitor gradle-app pip-app --all-sub-projects`', async (t) => { + t.plan(7); + chdirWorkspaces(); + const plugin = { + async inspect() { + return { + plugin: {}, + package: {}, + }; + }, + }; + const spyPlugin = sinon.spy(plugin, 'inspect'); + const loadPlugin = sinon.stub(plugins, 'loadPlugin'); + t.teardown(loadPlugin.restore); + loadPlugin.withArgs('gradle').returns(plugin); + loadPlugin.withArgs('pip').returns(plugin); + + await cli.monitor('gradle-app', 'pip-app', {'all-sub-projects': true}); + t.true(spyPlugin.args[0][2].multiDepRoots); + + let req = server.popRequest(); + t.equal(req.method, 'PUT', 'makes PUT request for pip'); + t.match(req.url, '/monitor/pip', 'puts at correct url'); + req = server.popRequest(); + t.equal(req.method, 'PUT', 'makes PUT request for gradle'); + t.match(req.url, '/monitor/gradle', 'puts at correct url'); + + t.same(spyPlugin.getCall(0).args, + ['gradle-app', 'build.gradle', { + "all-sub-projects": true, + "multiDepRoots": true, + "args": null, + }], 'calls plugin for the 1st path'); + t.same(spyPlugin.getCall(1).args, + ['pip-app', 'requirements.txt', { + "all-sub-projects": true, + // No multiDepRoots, because only Gradle plugin loader sets it + "args": null, + }], 'calls plugin for the 2nd path'); +}); + test('`monitor gradle-app --all-sub-projects --project-name`', async (t) => { t.plan(2); chdirWorkspaces();