Skip to content

Commit

Permalink
wip: quick push for rich
Browse files Browse the repository at this point in the history
  • Loading branch information
JAWilliamsONS committed Nov 6, 2023
1 parent 93770a4 commit 288a022
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/features/CATI_Dashboard_Link.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Feature: Cati dashboard link

Scenario: Following the Cati dashboard link takes a user to the case info page
Given I access the Telephone Operations Blaise Interface URL
When I click the link to the CATI dashboard
Then I arrive at the Case Info tab URL
72 changes: 72 additions & 0 deletions src/features/step_definitions/CATI_Dashboard_Link.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import React from "react";
import { defineFeature, loadFeature } from "jest-cucumber";
import {cleanup, fireEvent, render, screen, waitFor} from "@testing-library/react";
import { act } from "react-dom/test-utils";
import { createMemoryHistory } from "history";
import { Router } from "react-router-dom";
import flushPromises from "../../tests/utils";


import App from "../../App";
import {survey_list_with_OPN_and_LMS_with_one_active_instrument_each} from "./API_Mock_Objects";
import {Survey} from "blaise-api-node-client";

const feature = loadFeature(
"./src/features/CATI_Dashboard_Link.feature",
);


function mock_server_request(returnedStatus: number, returnedJSON: Survey[]) {
global.fetch = jest.fn(() =>
Promise.resolve({
status: returnedStatus,
json: () => Promise.resolve(returnedJSON),
})
) as jest.Mock;
}

defineFeature(feature, test => {

afterEach(() => {
jest.clearAllMocks();
cleanup();
jest.resetModules();
});

beforeEach(() => {
cleanup();
});


test("Following the Cati dashboard link takes a user to the case info page", ({ given, when, then }) => {
given("I access the Telephone Operations Blaise Interface URL", async () => {
mock_server_request(
200,
survey_list_with_OPN_and_LMS_with_one_active_instrument_each
);

const history = createMemoryHistory();
render(
<Router history={history}>
<App/>
</Router>
);
await act(async () => {
await flushPromises();
});
});

when("I click the link to the CATI dashboard", async () => {
fireEvent.click(screen.getByText(/Link to CATI dashboard/i));
await act(async () => {
await flushPromises();
});
});

then("I arrive at the Case Info tab URL", async () => {
await waitFor(() => {
expect(window.location.pathname).toContain("/Blaise/CaseInfo");
});
});
});
});

0 comments on commit 288a022

Please sign in to comment.