fleet/frontend/__mocks__/scriptMock.ts

149 lines
4 KiB
TypeScript
Raw Normal View History

import {
IScriptBatchHostResult,
IScriptBatchHostResultsResponse,
IScriptBatchSummaryV2,
IScriptResultResponse,
} from "services/entities/scripts";
import {
IScript,
IHostScript,
ScriptBatchStatus,
ScriptBatchHostStatus,
} from "interfaces/script";
2023-10-10 22:00:45 +00:00
const DEFAULT_SCRIPT_MOCK: IScript = {
id: 1,
team_id: null,
name: "test script",
created_at: "2020-01-01T00:00:00.000Z",
updated_at: "2020-01-01T00:00:00.000Z",
};
export const createMockScript = (overrides?: Partial<IScript>): IScript => {
return { ...DEFAULT_SCRIPT_MOCK, ...overrides };
};
const DEFAULT_SCRIPT_RESULT_MOCK: IScriptResultResponse = {
hostname: "Test Host",
host_id: 1,
execution_id: "123",
script_contents: "ls /home/*\necho 'testing'\necho 'lines'\nexit $?",
exit_code: 0,
output: "test\nlines\n",
message: "",
runtime: 0,
host_timeout: false,
script_id: 1,
UI – Uninstall features for host details, install/uninstall actions, activity feed, misc other items (#21933) ## #21566 - Host details updates for Uninstall packages details > software page. Full tasks outlined in the issue, [Figma here](https://www.figma.com/design/ToQaK2yUJwDyzagTdrbOfX/%2320320-Uninstall-packages?node-id=5364-13173&m=dev) **Updated install status tooltips:** ![install-status-tooltips](https://github.com/user-attachments/assets/9869c7d6-f953-4adc-9692-52f5dad9d81a) **Uninstall action:** ![uninstall-action](https://github.com/user-attachments/assets/189d5755-556c-48ca-8824-08db14ec95d4) **Update install details:** ![Screenshot 2024-09-09 at 1 12 58 PM](https://github.com/user-attachments/assets/f52b349b-9f01-49d4-b952-6efd60f29979) ## #21931 - updated specs for install/uninstall states ## #21568 - activity feed items for Uninstall ![Screenshot 2024-09-09 at 5 00 07 PM](https://github.com/user-attachments/assets/eb61949a-9f8d-4b9e-a437-2d31a6808f07) ![Screenshot 2024-09-09 at 5 42 52 PM](https://github.com/user-attachments/assets/a8c2de0e-27e3-4d2b-bf69-702ea7b72e48) ![Screenshot 2024-09-09 at 5 43 03 PM](https://github.com/user-attachments/assets/b6127ed3-6fcf-439e-aa3d-91038a025d92) ## #21567 - Uninstall details modal ![Screenshot 2024-09-10 at 7 42 18 PM](https://github.com/user-attachments/assets/a42e4e4a-eadd-4e75-84c5-c5f6a6230950) _remaining TODO_: - [x] manually QA 'failed' states - [x] determine where to source timestamp from for uninstall activities - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com> Co-authored-by: Victor Lyuboslavsky <victor@fleetdm.com>
2024-09-12 15:51:59 +00:00
created_at: "2020-01-01T00:00:00.000Z",
};
2023-10-10 22:00:45 +00:00
export const createMockScriptResult = (
overrides?: Partial<IScriptResultResponse>
): IScriptResultResponse => {
return { ...DEFAULT_SCRIPT_RESULT_MOCK, ...overrides };
};
2023-10-10 22:00:45 +00:00
const DEFAULT_HOST_SCRIPT_MOCK: IHostScript = {
script_id: 1,
name: "test script",
last_execution: {
execution_id: "123",
executed_at: "2020-01-01T00:00:00.000Z",
status: "ran",
},
};
export const createMockHostScript = (
overrides?: Partial<IHostScript>
): IHostScript => {
return { ...DEFAULT_HOST_SCRIPT_MOCK, ...overrides };
};
const DEFAULT_SCRIPT_BATCH_SUMMARY_MOCK: IScriptBatchSummaryV2 = {
created_at: "2025-07-01T10:00:00Z",
batch_execution_id: "2756fff7-9a0d-4d95-a893-ec5771e839d8",
script_id: 1,
script_name: "fake_batch_script.sh",
team_id: 0,
targeted_host_count: 100,
ran_host_count: 50,
pending_host_count: 15,
errored_host_count: 15,
incompatible_host_count: 10,
canceled_host_count: 10,
status: "finished" as ScriptBatchStatus,
not_before: "2023-07-10T18:30:08Z",
started_at: "2023-07-10T18:31:08Z",
finished_at: "2023-07-10T18:32:08Z",
canceled: false,
};
export const createMockBatchScriptSummary = (
overrides?: Partial<IScriptBatchSummaryV2>
): IScriptBatchSummaryV2 => {
return { ...DEFAULT_SCRIPT_BATCH_SUMMARY_MOCK, ...overrides };
};
const SCRIPT_BATCH_HOST_RESULTS_BY_STATUS: Record<
ScriptBatchHostStatus,
IScriptBatchHostResult
> = {
ran: {
id: 1,
display_name: "Host 1",
script_status: "ran",
script_execution_id: "exec-1",
script_executed_at: "2023-07-10T18:31:08Z",
script_output_preview:
"Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1Output from Host 1",
},
errored: {
id: 2,
display_name: "Host 2",
script_status: "errored",
script_execution_id: "exec-2",
script_executed_at: "2023-07-10T18:31:08Z",
script_output_preview: "Error output from Host 1",
},
pending: {
id: 3,
display_name: "Host 3",
script_status: "pending",
script_execution_id: null,
script_executed_at: null,
script_output_preview: null,
},
incompatible: {
id: 4,
display_name: "Host 4",
script_status: "incompatible",
script_execution_id: null,
script_executed_at: null,
script_output_preview: null,
},
canceled: {
id: 5,
display_name: "Host 5",
script_status: "canceled",
script_execution_id: null,
script_executed_at: null,
script_output_preview: null,
},
};
export const createMockScriptBatchHostResults = (
status?: ScriptBatchHostStatus
): IScriptBatchHostResultsResponse => {
return {
meta: {
has_next_results: false,
has_previous_results: false,
},
count: 2,
hosts: [
SCRIPT_BATCH_HOST_RESULTS_BY_STATUS[status || "ran"],
SCRIPT_BATCH_HOST_RESULTS_BY_STATUS[status || "ran"],
],
};
};