React & Redux 데스크탑 장바구니 애플리케이션
바로가기
바로가기
미션 진행하며 배운 것 + 에러 + 팁 등 기록
File |
% Stmts |
% Branch |
% Funcs |
% Lines |
Uncovered Line #s |
All files |
83.56 |
54.74 |
65.78 |
85.23 |
|
components/@atom/BottomUpModal |
75 |
41.66 |
66.66 |
77.77 |
|
BottomUpModal.tsx |
75 |
41.66 |
66.66 |
77.77 |
18-23 |
components/@atom/Button |
62.96 |
31.57 |
100 |
62.96 |
|
Button.tsx |
62.96 |
31.57 |
100 |
62.96 |
13-27 |
components/@atom/ScrollBottomObserver |
72.22 |
0 |
50 |
72.22 |
|
ScrollBottomObserver.tsx |
72.22 |
0 |
50 |
72.22 |
11-13,16-17 |
components/@atom/Spinner |
62.96 |
23.52 |
100 |
62.96 |
|
Spinner.tsx |
62.96 |
23.52 |
100 |
62.96 |
13-27 |
components/Carts/CartList |
61.64 |
37.5 |
23.52 |
68.25 |
|
CartList.tsx |
61.64 |
37.5 |
23.52 |
68.25 |
28,35,40-47,51,55,58,63-65,68-72,100 |
components/Carts/CartListContainer |
100 |
75 |
100 |
100 |
|
CartListContainer.tsx |
100 |
75 |
100 |
100 |
11 |
components/Carts/CartListItem |
96 |
75 |
83.33 |
96 |
|
CartListItem.tsx |
96 |
75 |
83.33 |
96 |
31 |
components/ConfirmAddCartsModal |
100 |
75 |
100 |
100 |
|
ConfirmAddCartsModal.tsx |
100 |
75 |
100 |
100 |
11 |
components/GNB |
100 |
75 |
100 |
100 |
|
GNB.tsx |
100 |
75 |
100 |
100 |
12 |
components/Orders/OrderList |
100 |
87.5 |
100 |
100 |
|
OrderList.tsx |
100 |
87.5 |
100 |
100 |
12 |
components/Orders/OrderListContainer |
100 |
75 |
100 |
100 |
|
OrderListContainer.tsx |
100 |
75 |
100 |
100 |
11 |
components/Orders/OrderListItem |
100 |
75 |
100 |
100 |
|
OrderListItem.tsx |
100 |
75 |
100 |
100 |
11 |
components/Orders/OrderedProduct |
88 |
75 |
40 |
88 |
|
OrderedProduct.tsx |
88 |
75 |
40 |
88 |
25-59 |
components/Products/ProductItem |
100 |
75 |
100 |
100 |
|
ProductItem.tsx |
100 |
75 |
100 |
100 |
12 |
components/Products/ProductList |
90.62 |
83.33 |
57.14 |
93.33 |
|
ProductList.tsx |
90.62 |
83.33 |
57.14 |
93.33 |
24,50 |
components/Products/ProductListContainer |
100 |
75 |
100 |
100 |
|
ProductListContainer.tsx |
100 |
75 |
100 |
100 |
12 |
hooks/service |
88.6 |
83.33 |
52.94 |
95.89 |
|
useCarts.ts |
88.88 |
83.33 |
62.5 |
94.11 |
25,49 |
useOrders.ts |
86.95 |
100 |
40 |
95.23 |
24 |
useProducts.ts |
90 |
100 |
50 |
100 |
|
service |
97.72 |
100 |
94.44 |
100 |
|
cartsService.ts |
95.65 |
100 |
87.5 |
100 |
|
ordersService.ts |
100 |
100 |
100 |
100 |
|
service/apis |
56.41 |
100 |
0 |
56.41 |
|
carts.ts |
53.84 |
100 |
0 |
53.84 |
10-19 |
orders.ts |
53.33 |
100 |
0 |
53.33 |
11-23 |
products.ts |
63.63 |
100 |
0 |
63.63 |
10-15 |
shared/constants |
64.28 |
100 |
28.57 |
64.28 |
|
css.ts |
100 |
100 |
100 |
100 |
|
url.ts |
54.54 |
100 |
28.57 |
54.54 |
19-64 |
shared/fixtures |
100 |
100 |
100 |
100 |
|
cartItem.ts |
100 |
100 |
100 |
100 |
|
carts.ts |
100 |
100 |
100 |
100 |
|
cartsFromServer.ts |
100 |
100 |
100 |
100 |
|
cartsReducerInitialState.ts |
100 |
100 |
100 |
100 |
|
cartsWithQuantity.ts |
100 |
100 |
100 |
100 |
|
orderItem.ts |
100 |
100 |
100 |
100 |
|
orders.ts |
100 |
100 |
100 |
100 |
|
product.ts |
100 |
100 |
100 |
100 |
|
shared/utils |
80 |
62.5 |
66.66 |
78.26 |
|
createMockRouter.ts |
100 |
100 |
100 |
100 |
|
fetcher.ts |
60 |
50 |
50 |
60 |
16-23 |
redux.ts |
83.33 |
100 |
60 |
81.81 |
9-15 |
test-utils.ts |
100 |
100 |
100 |
100 |
|
store |
96.87 |
66.66 |
100 |
96.77 |
|
index.ts |
96.87 |
66.66 |
100 |
96.77 |
25 |
store/modules |
96.42 |
66.66 |
100 |
96.42 |
|
index.ts |
96.42 |
66.66 |
100 |
96.42 |
36 |
store/modules/carts |
80.24 |
50 |
72.72 |
83.56 |
|
saga.ts |
82.14 |
50 |
80 |
82.14 |
46-53 |
slice.ts |
77.55 |
50 |
70.58 |
82.92 |
55-65,89-90 |
types.ts |
100 |
100 |
100 |
100 |
|
store/modules/orders |
66.66 |
37.5 |
42.85 |
66.66 |
|
saga.ts |
47.36 |
37.5 |
50 |
47.36 |
15-36 |
slice.ts |
78.94 |
100 |
33.33 |
78.94 |
28-32 |
types.ts |
100 |
100 |
100 |
100 |
|
store/modules/products |
100 |
66.66 |
100 |
100 |
|
saga.ts |
100 |
66.66 |
100 |
100 |
10-21 |
slice.ts |
100 |
100 |
100 |
100 |
|
types.ts |
100 |
100 |
100 |
100 |
|
react-shopping-cart/client 디렉토리에서 실행해주세요.
# npm
npm run server:first
# yarn
yarn server:first
# npm
npm run server
# yarn
yarn server
{
"response": [
{
"id": 1,
"price": 10000,
"name": "치킨",
"imageUrl": "http://example.com/chicken.jpg"
},
{
"id": 2,
"price": 20000,
"name": "피자",
"imageUrl": "http://example.com/pizza.jpg"
}
]
}
method |
uri |
POST |
/products |
{
"requestBody": {
"products": {
"price": 10000,
"name": "치킨",
"imageUrl": "http://example.com/chicken.jpg"
}
}
}
method |
uri |
GET |
/products/{id} |
{
"response": {
"id": 1,
"price": 10000,
"name": "치킨",
"imageUrl": "http://example.com/chicken.jpg"
}
}
method |
uri |
DELETE |
/products/{id} |
{
"response": {
"id": 1,
"product": {
"name": "test",
"price": 1234,
"imageUrl": "test.com",
"id": 1
}
},
{
"id": 5,
"product": {
"name": "tes11111t",
"price": 1234,
"imageUrl": "test.com",
"id": 10
}
},
}
{
"requestBody": {
"product": {
"id": 10,
"name": "tes11111t",
"price": 1234,
"imageUrl": "test.com"
}
}
}
method |
uri |
DELETE |
/carts/{cartId} |
{
"requestBody": {
"orderDetails": [
{
"id": 1,
"price": 10000,
"name": "치킨",
"imageUrl": "http://example.com/chicken.jpg",
"quantity": 5
},
{
"id": 2,
"price": 20000,
"name": "피자",
"imageUrl": "http://example.com/pizza.jpg",
"quantity": 3
}
]
}
}
{
"response": [
{
"id": 1,
"orderDetails": [
{
"id": 1,
"price": 10000,
"name": "치킨",
"imageUrl": "http://example.com/chicken.jpg",
"quantity": 5
},
{
"id": 2,
"price": 20000,
"name": "피자",
"imageUrl": "http://example.com/pizza.jpg",
"quantity": 3
}
]
},
{
"id": 2,
"orderDetails": [
{
"id": 1,
"price": 10000,
"name": "치킨",
"imageUrl": "http://example.com/chicken.jpg",
"quantity": 5
},
{
"id": 2,
"price": 20000,
"name": "피자",
"imageUrl": "http://example.com/pizza.jpg",
"quantity": 3
}
]
}
]
method |
uri |
GET |
/orders/{id} |
{
"response": {
"id": 1,
"orderDetails": [
{
"id": 1,
"price": 10000,
"name": "치킨",
"imageUrl": "http://example.com/chicken.jpg",
"quantity": 5
},
{
"id": 2,
"price": 20000,
"name": "피자",
"imageUrl": "http://example.com/pizza.jpg",
"quantity": 3
}
]
}
}