Skip to content

Commit

Permalink
chore: debugging vitests - in progress. Registration tests failing
Browse files Browse the repository at this point in the history
  • Loading branch information
andrea-williams committed Feb 11, 2025
1 parent 10e576e commit 8dfa441
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 48 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import SectionFieldTemplate from "@bciers/components/form/fields/SectionFieldTemplate";
import { RJSFSchema, UiSchema } from "@rjsf/utils";
import { getNaicsCodes, getReportingActivities } from "@bciers/actions/api";
import { getNaicsCodes } from "@bciers/actions/api";
import { Apps, OperationTypes } from "@bciers/utils/src/enums";
import { RegistrationPurposes } from "@/registration/app/components/operations/registration/enums";

Expand Down Expand Up @@ -31,13 +31,11 @@ export const createOperationInformationSchema = async (

// SFOs and LFOs require more properties and a different type enum
const naicsCodes = await getNaicsCodes();
const reportingActivities = await getReportingActivities();
const sfoAndLfoSchema = { ...eioOperationInformationSchema };

sfoAndLfoSchema.required = [
...(sfoAndLfoSchema.required ?? []),
"naics_code_id",
"activities",
"boundary_map",
"process_flow_diagram",
];
Expand Down Expand Up @@ -90,24 +88,6 @@ export const createOperationInformationSchema = async (
}),
),
},

activities: {
type: "array",
minItems: 1,
items: {
type: "number",
enum: reportingActivities.map(
(activity: { id: number; applicable_to: string; name: string }) =>
activity.id,
),
// enumNames is a non-standard field required for the MultiSelectWidget
// @ts-ignore
enumNames: reportingActivities.map(
(activity: { applicable_to: string; name: string }) => activity.name,
),
},
title: "Reporting Activities",
},
process_flow_diagram: {
type: "string",
title: "Process Flow Diagram",
Expand Down Expand Up @@ -150,10 +130,6 @@ export const operationInformationUISchema: UiSchema = {
"ui:widget": "ComboBox",
"ui:placeholder": "Select Tertiary NAICS code",
},
activities: {
"ui:widget": "MultiSelectWidget",
"ui:placeholder": "Select Reporting Activity",
},
process_flow_diagram: {
"ui:widget": "FileWidget",
"ui:options": {},
Expand All @@ -168,4 +144,4 @@ export const operationInformationUISchema: UiSchema = {
bcghg_id: {
"ui:widget": "BcghgIdWidget",
},
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ export const fetchFormEnums = () => {
getRegistrationPurposes.mockResolvedValue([
"Potential Reporting Operation",
"Reporting Operation",
"Opted-in Operation",
]);
};

Expand Down Expand Up @@ -209,15 +210,15 @@ const formData = {
mo_postal_code: "V1V1V1",
},
],
registration_purpose: "Reporting Operation",
registration_purpose: RegistrationPurposes.REPORTING_OPERATION,
regulated_products: [2],
opt_in: false,
};

const optInFormData = {
name: "Operation 5",
type: "Single Facility Operation",
registration_purpose: "Opted-in Operation",
registration_purpose: RegistrationPurposes.OPTED_IN_OPERATION,
opted_in_operation: {
meets_section_3_emissions_requirements: true,
meets_electricity_import_operation_criteria: true,
Expand Down Expand Up @@ -283,9 +284,6 @@ describe("the OperationInformationForm component", () => {
expect(screen.getByText(/Oil and gas extraction/i)).toBeVisible();
// secondary
expect(screen.getByText(/Bituminous coal mining/i)).toBeVisible();
// reporting activities
expect(screen.getByText(/Reporting Activities/i)).toBeVisible();
expect(screen.getByText(/General stationary combustion/i)).toBeVisible();
// 2 file inputs
expect(screen.getByText(/Process Flow Diagram/i)).toBeVisible();
expect(screen.getByText(/Boundary Map/i)).toBeVisible();
Expand Down Expand Up @@ -314,6 +312,9 @@ describe("the OperationInformationForm component", () => {
const reportingOperationLabels =
screen.getAllByText(/Reporting Operation/i);
expect(reportingOperationLabels.length === 2); // first is the from the Registration Purpose field, second is a section header
// reporting activities
expect(screen.getByText(/Reporting Activities/i)).toBeVisible();
expect(screen.getByText(/General stationary combustion/i)).toBeVisible();
});

it("should render the form with the correct form for an EIO when formData is provided", async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ export const createRegistrationPurposeSchema = async () => {
}[] = await getReportingActivities();
if (reportingActivities && "error" in reportingActivities)
throw new Error("Failed to retrieve reporting activities information");
const registrationPurposes = await getRegistrationPurposes();
const registrationPurposes: RegistrationPurposes[] =
await getRegistrationPurposes();
if (registrationPurposes && "error" in registrationPurposes)
throw new Error("Failed to retrieve registration purposes information");

Expand Down Expand Up @@ -92,7 +93,7 @@ export const createRegistrationPurposeSchema = async () => {
const isReportingActivities =
reportingOperationPurposes.includes(purpose);

// have to determine required fields dynamically based on selectedPurpose
// have to determine required fields dynamically based on purpose
const requiredFields = [];
if (isRegulatedProducts) requiredFields.push("regulated_products");
if (isReportingActivities) requiredFields.push("activities");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,14 @@ export const fetchFormEnums = () => {
{ id: 1, name: "BC-specific refinery complexity throughput" },
{ id: 2, name: "Cement equivalent" },
]);
// Operations
fetchOperationsPageData.mockResolvedValueOnce([
{ id: "uuid1", name: "Operation 1" },
{ id: "uuid2", name: "Operation 2" },
{
id: "b974a7fc-ff63-41aa-9d57-509ebe2553a4",
name: "Existing Operation",
},
]);
// Purposes
getRegistrationPurposes.mockResolvedValueOnce([
"Reporting Operation",
"Potential Reporting Operation",
"OBPS Regulated Operation",
"Opted-in Operation",
"New Entrant Operation",
"Electricity Import Operation",
{ id: 1, name: "Reporting Operation" },
{ id: 2, name: "Potential Reporting Operation" },
{ id: 3, name: "OBPS Regulated Operation" },
{ id: 4, name: "Opted-in Operation" },
{ id: 5, name: "New Entrant Operation" },
{ id: 6, name: "Electricity Import Operation" },
]);
// Naics codes
getNaicsCodes.mockResolvedValueOnce([
Expand All @@ -61,6 +52,15 @@ export const fetchFormEnums = () => {
{ name: "General Partnership" },
{ name: "BC Corporation" },
]);
// Operations
fetchOperationsPageData.mockResolvedValueOnce([
{ id: "uuid1", name: "Operation 1" },
{ id: "uuid2", name: "Operation 2" },
{
id: "b974a7fc-ff63-41aa-9d57-509ebe2553a4",
name: "Existing Operation",
},
]);
};

useSession.mockReturnValue({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,11 +227,14 @@ describe("the NewOperationRepresentativeForm component", () => {
expect(errorMessages).toHaveLength(4);

// Clearing the selected contact - must clear the form
await userEvent.click(screen.getByTestId("DeleteOutlineIcon"));

await userEvent.clear(
screen.getByRole("combobox", {
name: /select existing contact \(optional\)/i,
}),
);

checkEmptyOperationRepresentativeForm();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ describe("the OperationInformationPage component", () => {
await OperationInformationPage({
step: 1,
steps: allOperationRegistrationSteps,
operation: "b974a7fc-ff63-41aa-9d57-509ebe2553a4",
}),
);

Expand Down

0 comments on commit 8dfa441

Please sign in to comment.