Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix test #345

Merged
merged 1 commit into from
Sep 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion __tests__/ErrorBoundary/ErrorBoundary.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ describe("ErrorBoundary", () => {
);

expect(
getByText("Har du funnet en feil i Matrix, Neo?"),
getByText("Har du funnet en feil i Matrix?"),
).toBeInTheDocument();
expect(getByText("Dette er en testfeil")).toBeInTheDocument();
expect(getByText("Returner til Matrix")).toBeInTheDocument();
Expand Down
97 changes: 26 additions & 71 deletions __tests__/Kontakt/KontaktContent.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,13 @@ describe("KontaktContent", () => {
const fulltNavn = "Fullt navn";
const telefonNummer = "Telefonnummer";
const hvaOnskerDu = "Hva ønsker du å si?";
const sendSkjemaText = "Send skjema";

beforeEach(() => {
jest.clearAllMocks();
});

test("renders the component", () => {
render(<KontaktContent />);
expect(screen.getByTestId("kontaktcontent")).toBeInTheDocument();
});

test("submits the form successfully", async () => {
render(<KontaktContent />);

const fillFormWithValidData = () => {
fireEvent.change(screen.getByLabelText(fulltNavn), {
target: { value: "Bruker Test" },
});
Expand All @@ -37,8 +31,22 @@ describe("KontaktContent", () => {
fireEvent.change(screen.getByLabelText(hvaOnskerDu), {
target: { value: "Test melding" },
});
};

test("renders the component", () => {
render(<KontaktContent />);
expect(screen.getByTestId("kontaktcontent")).toBeInTheDocument();
});

test("submits the form successfully and disables submit button while submitting", async () => {
render(<KontaktContent />);

fireEvent.click(screen.getByText("Send skjema"));
fillFormWithValidData();

const submitButton = screen.getByText(sendSkjemaText);
fireEvent.click(submitButton);

expect(submitButton).toBeDisabled();

await waitFor(() => {
expect(screen.getByText("Takk for din beskjed")).toBeInTheDocument();
Expand All @@ -52,21 +60,12 @@ describe("KontaktContent", () => {

render(<KontaktContent />);

fireEvent.change(screen.getByLabelText(fulltNavn), {
target: { value: "Bruker Test" },
});
fireEvent.change(screen.getByLabelText(telefonNummer), {
target: { value: "12345678" },
});
fireEvent.change(screen.getByLabelText(hvaOnskerDu), {
target: { value: "Test melding" },
});

fireEvent.click(screen.getByText("Send skjema"));
fillFormWithValidData();
fireEvent.click(screen.getByText(sendSkjemaText));

await waitFor(() => {
expect(
screen.getByText("Feil under sending av skjema"),
screen.getByText("Feil under sending av skjema")
).toBeInTheDocument();
});

Expand All @@ -76,7 +75,7 @@ describe("KontaktContent", () => {
test("displays validation errors for empty fields", async () => {
render(<KontaktContent />);

fireEvent.click(screen.getByText("Send skjema"));
fireEvent.click(screen.getByText(sendSkjemaText));

await waitFor(() => {
expect(screen.getByText("Fullt navn er påkrevd")).toBeInTheDocument();
Expand All @@ -87,11 +86,11 @@ describe("KontaktContent", () => {
expect(emailjs.send).not.toHaveBeenCalled();
});

test("displays validation error for invalid phone number", async () => {
test("displays validation errors for invalid inputs", async () => {
render(<KontaktContent />);

fireEvent.change(screen.getByLabelText(fulltNavn), {
target: { value: "Bruker Test" },
target: { value: "User123" }, // Invalid name format
});
fireEvent.change(screen.getByLabelText(telefonNummer), {
target: { value: "123" }, // Invalid phone number
Expand All @@ -100,61 +99,17 @@ describe("KontaktContent", () => {
target: { value: "Test melding" },
});

fireEvent.click(screen.getByText("Send skjema"));
fireEvent.click(screen.getByText(sendSkjemaText));

await waitFor(() => {
expect(
screen.getByText("Vennligst oppgi et gyldig telefonnummer"),
screen.getByText("Vennligst bruk norske bokstaver")
).toBeInTheDocument();
});

expect(emailjs.send).not.toHaveBeenCalled();
});

test("displays validation error for invalid name format", async () => {
render(<KontaktContent />);

fireEvent.change(screen.getByLabelText(fulltNavn), {
target: { value: "User123" }, // Invalid name format
});
fireEvent.change(screen.getByLabelText(telefonNummer), {
target: { value: "12345678" },
});
fireEvent.change(screen.getByLabelText(hvaOnskerDu), {
target: { value: "Test melding" },
});

fireEvent.click(screen.getByText("Send skjema"));

await waitFor(() => {
expect(
screen.getByText("Vennligst bruk norske bokstaver"),
screen.getByText("Vennligst oppgi et gyldig telefonnummer")
).toBeInTheDocument();
});

expect(emailjs.send).not.toHaveBeenCalled();
});

test("disables submit button while submitting", async () => {
render(<KontaktContent />);

fireEvent.change(screen.getByLabelText(fulltNavn), {
target: { value: "Bruker Test" },
});
fireEvent.change(screen.getByLabelText(telefonNummer), {
target: { value: "12345678" },
});
fireEvent.change(screen.getByLabelText(hvaOnskerDu), {
target: { value: "Test melding" },
});

const submitButton = screen.getByText("Send skjema");
fireEvent.click(submitButton);

expect(submitButton).toBeDisabled();

await waitFor(() => {
expect(screen.getByText("Takk for din beskjed")).toBeInTheDocument();
});
});
});