PliWould/components/__tests__/ProductAttributeEditor-test.tsx

55 lines
2.1 KiB
TypeScript
Raw Normal View History

2024-06-27 23:31:59 +02:00
import { Product } from "@/lib/product"
2024-06-28 04:00:29 +02:00
import {ProductAttributeEditor} from "../ProductAttributeEditor"
2024-06-27 23:31:59 +02:00
import { area } from "enheter"
2024-06-28 04:00:29 +02:00
import { fireEvent, render, screen } from '@testing-library/react-native';
2024-06-27 23:31:59 +02:00
import React from "react";
2024-06-28 04:00:29 +02:00
import { emitTypingEvents } from "@testing-library/react-native/build/user-event/type/type";
2024-06-27 23:31:59 +02:00
describe("Product editor tests", () => {
const productName = "Fun Product";
2024-06-28 04:00:29 +02:00
it("Product attributes can be deleted", async () => {
2024-06-27 23:31:59 +02:00
const product = new Product(
100,
{l: 100, u: "foot"},
{"name" : productName}
2024-06-27 23:31:59 +02:00
);
const onChange = jest.fn();
const onDelete = jest.fn();
2024-06-28 04:00:29 +02:00
render(
<ProductAttributeEditor
attributeKey="name"
attributeValue="product"
product={product}
onChangeAttribute={onChange}
2024-06-28 04:00:29 +02:00
onDelete={onDelete}
/>);
expect(screen.getByLabelText("Delete Attribute")).not.toBeNull();
fireEvent.press(await screen.getByLabelText("Delete Attribute"));
expect(onDelete).toHaveBeenCalled();
});
it("Product attributes can be modified", async () => {
const product = new Product(
100,
{l: 100, u: "foot"},
{"name" : productName}
2024-06-28 04:00:29 +02:00
);
const onChange = jest.fn();
const onDelete = jest.fn();
const onKeyChange = jest.fn();
2024-06-28 04:00:29 +02:00
render(
<ProductAttributeEditor
attributeKey="old test key"
attributeValue="old test value"
onChangeAttribute={onChange}
2024-06-28 04:00:29 +02:00
onDelete={onDelete}
onChangeAttributeKey={onKeyChange}
2024-06-28 04:00:29 +02:00
/>);
fireEvent.changeText(screen.getByLabelText("Edit Key"), "new test key");
expect(onKeyChange).toHaveBeenCalled();
2024-06-28 04:00:29 +02:00
fireEvent.changeText(screen.getByLabelText("Edit Value"), "new name");
expect(onChange).toHaveBeenCalled();
fireEvent.press(screen.getByLabelText("Delete Attribute"));
expect(onDelete).toHaveBeenCalled();
2024-06-27 23:31:59 +02:00
})
2024-06-28 04:00:29 +02:00
2024-06-27 23:31:59 +02:00
})