From 7104d0312e6f6a78e153be4a03704201118ef1cd Mon Sep 17 00:00:00 2001 From: noahtalerman <47070608+noahtalerman@users.noreply.github.com> Date: Thu, 10 Jun 2021 11:37:25 -0400 Subject: [PATCH] Fix for cannot run query for selected teams (#1037) - Fix ability to run live query against teams - Update unit tests to support live queries against teams --- .../SelectTargetsDropdown.tests.jsx | 5 +++-- frontend/fleet/entities/packs.tests.js | 9 ++++++++- frontend/fleet/helpers.tests.js | 4 +++- frontend/fleet/helpers.ts | 5 +++-- frontend/test/target_mock.js | 2 ++ 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/frontend/components/forms/fields/SelectTargetsDropdown/SelectTargetsDropdown.tests.jsx b/frontend/components/forms/fields/SelectTargetsDropdown/SelectTargetsDropdown.tests.jsx index 3bb153308f..ed2811943b 100644 --- a/frontend/components/forms/fields/SelectTargetsDropdown/SelectTargetsDropdown.tests.jsx +++ b/frontend/components/forms/fields/SelectTargetsDropdown/SelectTargetsDropdown.tests.jsx @@ -101,15 +101,17 @@ describe("SelectTargetsDropdown - component", () => { targets: { hosts: [], labels: [Test.Stubs.labelStub], + teams: [], }, }; const apiResponseWithoutTargets = { targets: { hosts: [], labels: [], + teams: [], }, }; - const defaultSelectedTargets = { hosts: [], labels: [] }; + const defaultSelectedTargets = { hosts: [], labels: [], teams: [] }; const defaultParams = { query: "", query_id: 1, @@ -155,7 +157,6 @@ describe("SelectTargetsDropdown - component", () => { const node = Component.instance(); Test.Mocks.targetMock(defaultParams, apiResponseWithoutTargets); - expect.assertions(3); return node.fetchTargets().then(() => { expect(Component.state("isEmpty")).toEqual(true); diff --git a/frontend/fleet/entities/packs.tests.js b/frontend/fleet/entities/packs.tests.js index c49d731d47..83dc656a56 100644 --- a/frontend/fleet/entities/packs.tests.js +++ b/frontend/fleet/entities/packs.tests.js @@ -43,7 +43,13 @@ describe("Kolide - API client (packs)", () => { describe("#create", () => { it("calls the correct endpoint with the correct parameters", () => { const { description, name } = packStub; - const params = { description, name, host_ids: [], label_ids: [] }; + const params = { + description, + name, + host_ids: [], + label_ids: [], + team_ids: [], + }; const request = packMocks.create.valid(bearerToken, params); Fleet.setBearerToken(bearerToken); @@ -79,6 +85,7 @@ describe("Kolide - API client (packs)", () => { name: "New Pack Name", host_ids: [host2.id, hostStub.id], label_ids: [label2.id, labelStub.id], + team_ids: [], }; const request = packMocks.update.valid( bearerToken, diff --git a/frontend/fleet/helpers.tests.js b/frontend/fleet/helpers.tests.js index 2266245284..cb98d5d35e 100644 --- a/frontend/fleet/helpers.tests.js +++ b/frontend/fleet/helpers.tests.js @@ -149,12 +149,13 @@ describe("Kolide API - helpers", () => { describe("#formatSelectedTargetsForApi", () => { const { formatSelectedTargetsForApi } = helpers; - it("splits targets into labels and hosts", () => { + it("splits targets into labels, hosts, and teams", () => { const targets = [host1, host2, label1, label2]; expect(formatSelectedTargetsForApi(targets)).toEqual({ hosts: [6, 5], labels: [1, 2], + teams: [], }); }); @@ -164,6 +165,7 @@ describe("Kolide API - helpers", () => { expect(formatSelectedTargetsForApi(targets, true)).toEqual({ host_ids: [6, 5], label_ids: [1, 2], + team_ids: [], }); }); }); diff --git a/frontend/fleet/helpers.ts b/frontend/fleet/helpers.ts index 0ca917762f..edbd15db2f 100644 --- a/frontend/fleet/helpers.ts +++ b/frontend/fleet/helpers.ts @@ -174,12 +174,13 @@ export const formatSelectedTargetsForApi = ( const targets = selectedTargets || []; const hosts = flatMap(targets, filterTarget("hosts")); const labels = flatMap(targets, filterTarget("labels")); + const teams = flatMap(targets, filterTarget("teams")); if (appendID) { - return { host_ids: hosts, label_ids: labels }; + return { host_ids: hosts, label_ids: labels, team_ids: teams }; } - return { hosts, labels }; + return { hosts, labels, teams }; }; export const formatScheduledQueryForServer = (scheduledQuery: any) => { diff --git a/frontend/test/target_mock.js b/frontend/test/target_mock.js index 165590122a..55028e31f9 100644 --- a/frontend/test/target_mock.js +++ b/frontend/test/target_mock.js @@ -6,12 +6,14 @@ const defaultParams = { selected: { hosts: [], labels: [], + teams: [], }, }; const defaultResponse = { targets: { hosts: [], labels: [], + teams: [], }, };