ferns-ui 1.16.1 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/ErrorBoundary.d.ts +1 -1
  2. package/dist/Hyperlink.js.map +1 -1
  3. package/dist/ModalSheet.d.ts +1 -1
  4. package/dist/ModalSheet.js +1 -1
  5. package/dist/ModalSheet.js.map +1 -1
  6. package/dist/Tooltip.js +2 -2
  7. package/dist/Tooltip.js.map +1 -1
  8. package/dist/jestSetup.d.ts +0 -0
  9. package/dist/jestSetup.js +21 -0
  10. package/dist/jestSetup.js.map +1 -0
  11. package/dist/setupTests.js +22 -0
  12. package/dist/setupTests.js.map +1 -1
  13. package/dist/table/Table.js.map +1 -1
  14. package/dist/test-utils.d.ts +4 -1
  15. package/package.json +43 -39
  16. package/src/Avatar.test.tsx +0 -2
  17. package/src/DataTable.tsx +2 -2
  18. package/src/Hyperlink.tsx +1 -1
  19. package/src/ModalSheet.tsx +1 -1
  20. package/src/Tooltip.tsx +11 -5
  21. package/src/jestSetup.ts +16 -0
  22. package/src/setupTests.ts +24 -0
  23. package/src/table/Table.tsx +3 -3
  24. package/dist/Accordion.test.d.ts +0 -1
  25. package/dist/Accordion.test.js +0 -71
  26. package/dist/Accordion.test.js.map +0 -1
  27. package/dist/AddressField.test.d.ts +0 -1
  28. package/dist/AddressField.test.js +0 -65
  29. package/dist/AddressField.test.js.map +0 -1
  30. package/dist/Avatar.test.d.ts +0 -1
  31. package/dist/Avatar.test.js +0 -131
  32. package/dist/Avatar.test.js.map +0 -1
  33. package/dist/Badge.test.d.ts +0 -1
  34. package/dist/Badge.test.js +0 -76
  35. package/dist/Badge.test.js.map +0 -1
  36. package/dist/Box.test.d.ts +0 -1
  37. package/dist/Box.test.js +0 -528
  38. package/dist/Box.test.js.map +0 -1
  39. package/dist/DateTimeField.test.d.ts +0 -1
  40. package/dist/DateTimeField.test.js +0 -258
  41. package/dist/DateTimeField.test.js.map +0 -1
  42. package/dist/DateUtilities.test.d.ts +0 -1
  43. package/dist/DateUtilities.test.js +0 -279
  44. package/dist/DateUtilities.test.js.map +0 -1
  45. package/dist/TextArea.test.d.ts +0 -1
  46. package/dist/TextArea.test.js +0 -146
  47. package/dist/TextArea.test.js.map +0 -1
  48. package/dist/TextField.test.d.ts +0 -1
  49. package/dist/TextField.test.js +0 -251
  50. package/dist/TextField.test.js.map +0 -1
  51. package/dist/useStoredState.test.d.ts +0 -1
  52. package/dist/useStoredState.test.js +0 -93
  53. package/dist/useStoredState.test.js.map +0 -1
@@ -1,65 +0,0 @@
1
- import { fireEvent } from "@testing-library/react-native";
2
- import React from "react";
3
- import { AddressField } from "./AddressField";
4
- import { renderWithTheme } from "./test-utils";
5
- describe("AddressField", () => {
6
- const defaultProps = {
7
- testID: "test-address",
8
- value: {
9
- address1: "123 Main St",
10
- address2: "Apt 4B",
11
- city: "Springfield",
12
- state: "IL",
13
- zipcode: "62701",
14
- countyName: "Sangamon",
15
- countyCode: "17167",
16
- },
17
- onChange: jest.fn(),
18
- onBlur: jest.fn(),
19
- };
20
- it("renders correctly with default props", () => {
21
- const { toJSON } = renderWithTheme(React.createElement(AddressField, Object.assign({}, defaultProps)));
22
- expect(toJSON()).toMatchSnapshot();
23
- });
24
- it("renders all address fields", () => {
25
- const { getByTestId } = renderWithTheme(React.createElement(AddressField, Object.assign({}, defaultProps)));
26
- expect(getByTestId("test-address-address1")).toBeTruthy();
27
- expect(getByTestId("test-address-address2")).toBeTruthy();
28
- expect(getByTestId("test-address-city")).toBeTruthy();
29
- expect(getByTestId("test-address-zip")).toBeTruthy();
30
- });
31
- it("calls onChange when address fields are updated", () => {
32
- const { getByTestId } = renderWithTheme(React.createElement(AddressField, Object.assign({}, defaultProps)));
33
- const cityInput = getByTestId("test-address-city");
34
- fireEvent.changeText(cityInput, "New City");
35
- expect(defaultProps.onChange).toHaveBeenCalledWith(Object.assign(Object.assign({}, defaultProps.value), { city: "New City" }));
36
- });
37
- it("calls onBlur when a field is blurred", () => {
38
- const { getByTestId } = renderWithTheme(React.createElement(AddressField, Object.assign({}, defaultProps)));
39
- // Reset mock since it was called during render
40
- defaultProps.onBlur.mockClear();
41
- const zipInput = getByTestId("test-address-zip");
42
- fireEvent.changeText(zipInput, "90210");
43
- fireEvent(zipInput, "blur");
44
- expect(defaultProps.onBlur).toHaveBeenCalledWith(Object.assign(Object.assign({}, defaultProps.value), { zipcode: "90210" }));
45
- });
46
- it("renders county fields when includeCounty is true", () => {
47
- const { getByTestId } = renderWithTheme(React.createElement(AddressField, Object.assign({}, defaultProps, { includeCounty: true })));
48
- expect(getByTestId("test-address-county")).toBeTruthy();
49
- expect(getByTestId("test-address-county-code")).toBeTruthy();
50
- });
51
- it("does not render county fields when includeCounty is false", () => {
52
- const { queryByTestId } = renderWithTheme(React.createElement(AddressField, Object.assign({}, defaultProps, { includeCounty: false })));
53
- expect(queryByTestId("test-address-county")).toBeNull();
54
- expect(queryByTestId("test-address-county-code")).toBeNull();
55
- });
56
- it("disables all fields when disabled prop is true", () => {
57
- const { getByTestId } = renderWithTheme(React.createElement(AddressField, Object.assign({}, defaultProps, { disabled: true })));
58
- const address1Input = getByTestId("test-address-address1");
59
- const cityInput = getByTestId("test-address-city");
60
- // Check that the disabled prop is passed down to the inputs
61
- expect(address1Input.props.accessibilityState.disabled).toBe(true);
62
- expect(cityInput.props.accessibilityState.disabled).toBe(true);
63
- });
64
- });
65
- //# sourceMappingURL=AddressField.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AddressField.test.js","sourceRoot":"","sources":["../src/AddressField.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,131 +0,0 @@
1
- import { act, fireEvent } from "@testing-library/react-native";
2
- // import {ImageManipulator} from "expo-image-manipulator";
3
- // Import the actual implementation for SaveFormat
4
- import * as ImageManipulator from "expo-image-manipulator";
5
- import React from "react";
6
- import { Avatar } from "./Avatar";
7
- import { renderWithTheme } from "./test-utils";
8
- // Mock expo-image-picker
9
- jest.mock("expo-image-picker", () => ({
10
- launchImageLibraryAsync: jest.fn(),
11
- }));
12
- // Mock expo-image-manipulator
13
- const mockResize = jest.fn();
14
- const mockRenderAsync = jest.fn();
15
- const mockSaveAsync = jest.fn();
16
- jest.mock("expo-image-manipulator", () => {
17
- const actual = jest.requireActual("expo-image-manipulator");
18
- return Object.assign(Object.assign({}, actual), { ImageManipulator: {
19
- manipulate: jest.fn().mockImplementation(() => ({
20
- resize: mockResize.mockImplementation(() => ({
21
- renderAsync: mockRenderAsync.mockResolvedValue({
22
- saveAsync: mockSaveAsync.mockResolvedValue({
23
- uri: "test-uri",
24
- base64: "test-base64",
25
- }),
26
- }),
27
- })),
28
- })),
29
- }, SaveFormat: {
30
- PNG: "png",
31
- JPEG: "jpeg",
32
- } });
33
- });
34
- jest.mock("expo-image-picker", () => ({
35
- launchImageLibraryAsync: jest.fn().mockResolvedValue({
36
- canceled: false,
37
- assets: [
38
- {
39
- uri: "test-uri",
40
- width: 100,
41
- height: 100,
42
- },
43
- ],
44
- }),
45
- }));
46
- // Mock the LinearGradient component
47
- jest.mock("expo-linear-gradient", () => ({
48
- LinearGradient: "LinearGradient",
49
- }));
50
- describe("Avatar", () => {
51
- const defaultProps = {
52
- name: "John Doe",
53
- src: "https://example.com/avatar.jpg",
54
- testID: "avatar",
55
- };
56
- beforeEach(() => {
57
- jest.clearAllMocks();
58
- });
59
- it("renders correctly with default props", () => {
60
- const { toJSON } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps)));
61
- expect(toJSON()).toMatchSnapshot();
62
- });
63
- it("renders initials when no image is provided", () => {
64
- const { getByText } = renderWithTheme(React.createElement(Avatar, { name: "John Doe", testID: "avatar" }));
65
- expect(getByText("JD")).toBeTruthy();
66
- });
67
- it("renders image when src is provided", () => {
68
- const { getByTestId } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps)));
69
- const image = getByTestId("avatar-image");
70
- expect(image).toBeTruthy();
71
- });
72
- it("shows initials when image fails to load", () => {
73
- const { getByText, getByTestId } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps, { name: "John Doe" })));
74
- // Simulate image load error
75
- fireEvent(getByTestId("avatar-image"), "onError");
76
- expect(getByText("JD")).toBeTruthy();
77
- });
78
- it("applies correct size class", () => {
79
- const size = "lg";
80
- const { getByTestId } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps, { size: size })));
81
- const avatar = getByTestId("avatar-image");
82
- // Check if the style contains the expected size
83
- expect(avatar.props.style).toMatchObject({
84
- height: 72, // lg size from the sizes object
85
- });
86
- });
87
- it("shows status indicator when status is provided", () => {
88
- const { getByTestId } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps, { status: "online" })));
89
- expect(getByTestId("status-indicator")).toBeTruthy();
90
- });
91
- it("shows edit icon when status is imagePicker and size is xl", () => {
92
- const { getByText } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps, { size: "xl", status: "imagePicker" })));
93
- expect(getByText("Upload Image")).toBeTruthy();
94
- });
95
- it("calls onChange when edit icon is pressed", async () => {
96
- const mockOnChange = jest.fn();
97
- const { getByText } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps, { size: "xl", status: "imagePicker", onChange: mockOnChange })));
98
- await act(async () => {
99
- fireEvent.press(getByText("Upload Image"));
100
- });
101
- // The onChange should be called with the processed image
102
- expect(mockOnChange).toHaveBeenCalledWith({
103
- avatarImageFormat: "png",
104
- uri: "data:image/png;base64,test-base64",
105
- base64: "test-base64",
106
- });
107
- expect(ImageManipulator.ImageManipulator.manipulate).toHaveBeenCalled();
108
- expect(mockResize).toHaveBeenCalled();
109
- expect(mockRenderAsync).toHaveBeenCalled();
110
- expect(mockSaveAsync).toHaveBeenCalledWith({
111
- format: "png",
112
- base64: true,
113
- });
114
- });
115
- it("applies border when hasBorder is true", () => {
116
- const { getByTestId } = renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps, { hasBorder: true })));
117
- const avatar = getByTestId("avatar-image");
118
- // Check if the style contains border properties
119
- expect(avatar.props.style).toMatchObject({
120
- borderWidth: expect.any(Number),
121
- borderColor: expect.any(String),
122
- });
123
- });
124
- it("shows warning when imagePicker status is used with non-xl size", () => {
125
- const consoleWarnSpy = jest.spyOn(console, "warn").mockImplementation(() => { });
126
- renderWithTheme(React.createElement(Avatar, Object.assign({}, defaultProps, { size: "lg", status: "imagePicker" })));
127
- expect(consoleWarnSpy).toHaveBeenCalledWith("Avatars with the status of 'imagePicker' should also have an onChange property.");
128
- consoleWarnSpy.mockRestore();
129
- });
130
- });
131
- //# sourceMappingURL=Avatar.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.test.js","sourceRoot":"","sources":["../src/Avatar.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,76 +0,0 @@
1
- import React from "react";
2
- import { Badge } from "./Badge";
3
- import { renderWithTheme } from "./test-utils";
4
- describe("Badge", () => {
5
- const defaultProps = {
6
- value: "Test",
7
- };
8
- it("renders correctly with default props", () => {
9
- const { toJSON } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps)));
10
- expect(toJSON()).toMatchSnapshot();
11
- });
12
- it("renders text value correctly", () => {
13
- const { getByText } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps)));
14
- expect(getByText("Test")).toBeTruthy();
15
- });
16
- it("renders number value correctly", () => {
17
- const { getByText } = renderWithTheme(React.createElement(Badge, { value: 42 }));
18
- expect(getByText("42")).toBeTruthy();
19
- });
20
- it("truncates large numbers with maxValue", () => {
21
- const { getByText } = renderWithTheme(React.createElement(Badge, { maxValue: 100, value: 150, variant: "numberOnly" }));
22
- expect(getByText("100+")).toBeTruthy();
23
- });
24
- it("does not truncate numbers below maxValue", () => {
25
- const { getByText } = renderWithTheme(React.createElement(Badge, { maxValue: 100, value: 50, variant: "numberOnly" }));
26
- expect(getByText("50")).toBeTruthy();
27
- });
28
- it("applies correct status colors", () => {
29
- const statuses = ["error", "warning", "info", "success", "neutral"];
30
- statuses.forEach((status) => {
31
- let { getByTestId } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { status: status, testID: "badge" })));
32
- // Test primary variant
33
- const badge = getByTestId("badge");
34
- expect(badge).toHaveStyle({ backgroundColor: expect.any(String) });
35
- // Test secondary variant
36
- ({ getByTestId } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { secondary: true, status: status, testID: "badge-secondary" }))));
37
- const secondaryBadge = getByTestId("badge-secondary");
38
- expect(secondaryBadge).toHaveStyle({ backgroundColor: expect.any(String) });
39
- });
40
- });
41
- it("renders icon when iconName is provided", () => {
42
- const { getByTestId } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { iconName: "check", testID: "badge-with-icon" })));
43
- expect(getByTestId("icon")).toBeTruthy();
44
- });
45
- it("renders icon only when variant is iconOnly", () => {
46
- const { getByTestId, queryByText } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { iconName: "check", testID: "icon-only-badge", variant: "iconOnly" })));
47
- expect(getByTestId("icon")).toBeTruthy();
48
- expect(queryByText("Test")).toBeNull();
49
- });
50
- it("applies custom colors when status is custom", () => {
51
- const customColors = {
52
- customBackgroundColor: "#123456",
53
- customTextColor: "#ffffff",
54
- customBorderColor: "#654321",
55
- customIconColor: "#ffcc00",
56
- };
57
- const { getByTestId } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { iconName: "star", secondary: true, status: "custom", testID: "custom-badge" }, customColors)));
58
- const badge = getByTestId("custom-badge");
59
- expect(badge).toHaveStyle({
60
- backgroundColor: customColors.customBackgroundColor,
61
- borderColor: customColors.customBorderColor,
62
- });
63
- });
64
- it("applies correct border radius based on variant", () => {
65
- // Default variant
66
- let { getByTestId } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { testID: "default-badge" })));
67
- expect(getByTestId("default-badge")).toHaveStyle({ borderRadius: expect.any(Number) });
68
- // Icon only variant
69
- ({ getByTestId } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { iconName: "check", testID: "icon-only-badge", variant: "iconOnly" }))));
70
- expect(getByTestId("icon-only-badge")).toHaveStyle({ borderRadius: expect.any(Number) });
71
- // Number only variant
72
- ({ getByTestId } = renderWithTheme(React.createElement(Badge, Object.assign({}, defaultProps, { testID: "number-only-badge", variant: "numberOnly" }))));
73
- expect(getByTestId("number-only-badge")).toHaveStyle({ borderRadius: expect.any(Number) });
74
- });
75
- });
76
- //# sourceMappingURL=Badge.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.test.js","sourceRoot":"","sources":["../src/Badge.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};