Skip to content

Commit

Permalink
chore: Resolve linting issue(s). (#95)
Browse files Browse the repository at this point in the history
  • Loading branch information
filiphsps authored Nov 3, 2021
1 parent f15b13b commit 17be47a
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 40 deletions.
12 changes: 6 additions & 6 deletions src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ export type Actions =
payload: object;
}
| { type: "EMPTY_CART" }
| { type: "CLEAR_CART_META"}
| { type: "SET_CART_META"; payload: Metadata}
| { type: "CLEAR_CART_META" }
| { type: "SET_CART_META"; payload: Metadata }
| { type: "UPDATE_CART_META"; payload: Metadata };

export const initialState: any = {
Expand Down Expand Up @@ -112,15 +112,15 @@ function reducer(state: CartProviderState, action: Actions) {
case "CLEAR_CART_META":
return {
...state,
metadata: {}
metadata: {},
};

case "SET_CART_META":
return {
...state,
metadata: {
...action.payload
}
...action.payload,
},
};

case "UPDATE_CART_META":
Expand Down Expand Up @@ -212,7 +212,7 @@ export const CartProvider: React.FC<{
type: "SET_ITEMS",
payload: items.map(item => ({
...item,
quantity: item.quantity || 1
quantity: item.quantity || 1,
})),
});

Expand Down
70 changes: 36 additions & 34 deletions test/index.test.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import React, { FC, HTMLAttributes, ReactChild } from "react";
import { renderHook, act } from "@testing-library/react-hooks";

import {
CartProvider,
useCart,
initialState,
createCartIdentifier,
initialState,
useCart,
} from "../src";
import React, { FC, HTMLAttributes, ReactChild } from "react";
import { act, renderHook } from "@testing-library/react-hooks";

export interface Props extends HTMLAttributes<HTMLDivElement> {
children?: ReactChild;
Expand Down Expand Up @@ -411,13 +410,13 @@ describe("emptyCart", () => {

describe("updateCartMetadata", () => {
test("clears cart metadata", () => {
const {result} = renderHook(() => useCart(), {
wrapper: CartProvider,
const { result } = renderHook(() => useCart(), {
wrapper: CartProvider,
});

const metadata = {
coupon: "abc123",
notes: "Leave on door step",
coupon: "abc123",
notes: "Leave on door step",
};

act(() => result.current.updateCartMetadata(metadata));
Expand All @@ -430,22 +429,22 @@ describe("updateCartMetadata", () => {
});

test("sets cart metadata", () => {
const {result} = renderHook(() => useCart(), {
wrapper: CartProvider,
const { result } = renderHook(() => useCart(), {
wrapper: CartProvider,
});

const metadata = {
coupon: "abc123",
notes: "Leave on door step",
coupon: "abc123",
notes: "Leave on door step",
};

act(() => result.current.updateCartMetadata(metadata));

expect(result.current.metadata).toEqual(metadata);

const replaceMetadata = {
delivery: "same-day"
}
delivery: "same-day",
};

act(() => result.current.setCartMetadata(replaceMetadata));

Expand Down Expand Up @@ -494,7 +493,10 @@ describe("updateCartMetadata", () => {
});
describe("setItems", () => {
test("set cart items state", () => {
const items = [{ id: "test", price: 1000 }, { id: "test2", price: 2000 }];
const items = [
{ id: "test", price: 1000 },
{ id: "test2", price: 2000 },
];

const wrapper: FC<Props> = ({ children }) => (
<CartProvider defaultItems={[]}>{children}</CartProvider>
Expand All @@ -503,33 +505,32 @@ describe("setItems", () => {
wrapper,
});

act(() =>
result.current.setItems(items)
);
act(() => result.current.setItems(items));
expect(result.current.items).toHaveLength(2);
expect(result.current.totalItems).toBe(2);
expect(result.current.totalUniqueItems).toBe(2);
expect(result.current.isEmpty).toBe(false);
expect(result.current.items).toContainEqual(
expect.objectContaining({ id: "test2", price: 2000, quantity: 1 })
);
})
});
test("add custom quantities with setItems", () => {
const items = [{ id: "test", price: 1000, quantity: 2 }, { id: "test2", price: 2000, quantity: 1 }];
const items = [
{ id: "test", price: 1000, quantity: 2 },
{ id: "test2", price: 2000, quantity: 1 },
];
const wrapper: FC<Props> = ({ children }) => (
<CartProvider defaultItems={[]}>{children}</CartProvider>
);
const { result } = renderHook(() => useCart(), {
wrapper,
});

act(() =>
result.current.setItems(items)
);
act(() => result.current.setItems(items));
expect(result.current.items).toHaveLength(2);
expect(result.current.totalItems).toBe(3);
expect(result.current.totalUniqueItems).toBe(2);
})
});
test("current items is replaced when setItems has been called with a new set of items", () => {
const itemToBeReplaced = { id: "test", price: 1000 };
const wrapper: FC<Props> = ({ children }) => (
Expand All @@ -538,17 +539,18 @@ describe("setItems", () => {
const { result } = renderHook(() => useCart(), {
wrapper,
});
const items = [{ id: "test2", price: 2000}, { id: "test3", price: 3000}];
act(() =>
result.current.setItems(items)
);
const items = [
{ id: "test2", price: 2000 },
{ id: "test3", price: 3000 },
];
act(() => result.current.setItems(items));
expect(result.current.items).toHaveLength(2);
expect(result.current.items).not.toContainEqual(
expect.objectContaining(itemToBeReplaced)
expect.objectContaining(itemToBeReplaced)
);
})
});
test("trigger onSetItems when setItems is called", () => {
let called = false;
let called = false;

const wrapper: FC<Props> = ({ children }) => (
<CartProvider onSetItems={() => (called = true)}>{children}</CartProvider>
Expand All @@ -563,5 +565,5 @@ describe("setItems", () => {
act(() => result.current.setItems(items));

expect(called).toBe(true);
})
})
});
});

0 comments on commit 17be47a

Please sign in to comment.