Skip to content

Commit 7d3f02d

Browse files
author
Yongjae Lee
authored
Merge pull request #63 from petlab-dev/FE/refactor/issue-62
[#62] 1์ฐจ์ ์ธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
2 parents c80de94 + 9c1cdf1 commit 7d3f02d

104 files changed

Lines changed: 19770 additions & 3314 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

โ€Žbabel.config.jsโ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ module.exports = {
1111
],
1212
// '@babel/preset-react',
1313
],
14+
plugins: ['babel-plugin-emotion'],
1415
};

โ€Žjest.config.jsโ€Ž

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ module.exports = {
77
setupFilesAfterEnv: [
88
'given2/setup',
99
'jest-plugin-context/setup',
10+
'@testing-library/jest-dom/extend-expect',
1011
],
12+
transformIgnorePatterns: [],
1113
coverageThreshold: {
1214
global: {
1315
branches: 100,
@@ -16,4 +18,11 @@ module.exports = {
1618
statements: 100,
1719
},
1820
},
21+
setupFiles: [
22+
'./node_modules/react-native-gesture-handler/jestSetup.js',
23+
],
24+
globals: {
25+
window: {},
26+
},
27+
snapshotSerializers: ['jest-emotion'],
1928
};

โ€Žpackage.jsonโ€Ž

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"expo-web-browser": "~8.3.1",
5050
"firebase": "7.9.0",
5151
"fireworks": "^2.2.6",
52+
"jest-emotion": "^10.0.32",
5253
"prop-types": "^15.7.2",
5354
"react": "~16.11.0",
5455
"react-dom": "~16.11.0",
@@ -62,6 +63,7 @@
6263
"react-native-webview": "9.4.0",
6364
"react-naver-maps": "^0.0.13",
6465
"react-redux": "^7.2.1",
66+
"react-test-renderer": "^16.13.1",
6567
"redux": "^4.0.5",
6668
"redux-thunk": "^2.3.0",
6769
"styled-components": "^5.1.1",
@@ -72,7 +74,7 @@
7274
"@babel/core": "^7.10.5",
7375
"@babel/preset-env": "^7.10.4",
7476
"@react-native-community/eslint-config": "^2.0.0",
75-
"@testing-library/jest-dom": "^5.11.1",
77+
"@testing-library/jest-dom": "^5.11.4",
7678
"@testing-library/jest-native": "^3.2.0",
7779
"@testing-library/react-native": "^6.0.0",
7880
"@types/jest": "^26.0.7",

โ€Žsrc/Index.jsxโ€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export default function Index() {
2424
return (
2525
<CenterView>
2626
<ActivityIndicator color="black" size="large" />
27-
<Text>aa</Text>
2827
</CenterView>
2928
);
3029
}

โ€Žsrc/__fixtures__/adData.jsโ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/* eslint-disable global-require */
2+
const adData = [
3+
{
4+
key: 1,
5+
url: 'https://www.seoulpetshow.co.kr/',
6+
source: require('../components/assets/Ad/1.png'),
7+
},
8+
{
9+
key: 2,
10+
url: 'https://www.suwonpetshow.co.kr/',
11+
source: require('../components/assets/Ad/2.png'),
12+
},
13+
{
14+
key: 3,
15+
url: 'https://gdppcat.com/index.html',
16+
source: require('../components/assets/Ad/3.png'),
17+
},
18+
];
19+
20+
export default adData;

โ€Žsrc/__fixtures__/myPet.jsโ€Ž

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/* eslint-disable global-require */
2+
const myPet = [
3+
{
4+
petName: '๋ƒฅ์ด',
5+
years: '2',
6+
key: 1,
7+
source: require('../components/assets/Meow/meow-1.jpeg'),
8+
},
9+
{
10+
petName: '๋ƒฅ๋ƒฅ์ด',
11+
years: '5',
12+
key: 2,
13+
source: require('../components/assets/Meow/meow-2.jpeg'),
14+
},
15+
];
16+
17+
export default myPet;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* eslint-disable global-require */
2+
const platformInfo = [
3+
{
4+
platform: 'naver',
5+
link: '๋„ค์ด๋ฒ„์—ฐ๋™',
6+
key: 1,
7+
source: require('../components/assets/LoginIcons/naver.png'),
8+
},
9+
{
10+
platform: 'kakao',
11+
link: '์นด์นด์˜คํ†ก์—ฐ๋™',
12+
key: 2,
13+
source: require('../components/assets/LoginIcons/kakao.png'),
14+
},
15+
{
16+
platform: 'facebook',
17+
link: 'ํŽ˜๋ถ์—ฐ๋™',
18+
key: 3,
19+
source: require('../components/assets/LoginIcons/facebook.png'),
20+
},
21+
{
22+
platform: 'google',
23+
link: '๊ตฌ๊ธ€์—ฐ๋™',
24+
key: 4,
25+
source: require('../components/assets/LoginIcons/google.png'),
26+
},
27+
];
28+
29+
export default platformInfo;
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import React from 'react';
2+
import { render, fireEvent } from '@testing-library/react-native';
3+
4+
import { useSelector, useDispatch } from 'react-redux';
5+
import AuthCheckScreen from './AuthCheckScreen/index';
6+
7+
const navigation = { navigate: jest.fn() };
8+
9+
function renderAuthCheckScreen() {
10+
return render(<AuthCheckScreen navigation={navigation} />);
11+
}
12+
13+
describe('AuthCheckScreen', () => {
14+
const dispatch = jest.fn();
15+
16+
beforeEach(() => {
17+
useSelector.mockImplementation((selector) => selector({
18+
defaultMessage: 'None',
19+
}));
20+
21+
useDispatch.mockImplementation(() => dispatch);
22+
});
23+
24+
it('renders without exploding', () => {
25+
const { container } = renderAuthCheckScreen();
26+
27+
expect(container).toBeTruthy();
28+
});
29+
30+
context('when click AuthCheckSelectButton', () => {
31+
it('calls button event', () => {
32+
const { getByText } = renderAuthCheckScreen();
33+
34+
fireEvent.press(getByText('Phone'));
35+
36+
expect(dispatch).toBeCalled();
37+
38+
fireEvent.press(getByText('Email'));
39+
40+
expect(dispatch).toBeCalled();
41+
});
42+
});
43+
});
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import React from 'react';
2+
import { render } from '@testing-library/react-native';
3+
4+
import AuthCheckHeader from './AuthCheckHeader';
5+
6+
function renderAuthCheckHeader(text = 'mock') {
7+
return render(<AuthCheckHeader text={text} />);
8+
}
9+
10+
describe('AuthCheckHeader', () => {
11+
it('renders without exploding', () => {
12+
const { container } = renderAuthCheckHeader();
13+
14+
expect(container).toBeTruthy();
15+
});
16+
17+
context('when pass props', () => {
18+
it('renders text properly', () => {
19+
const text = 'Header';
20+
const { getByText } = renderAuthCheckHeader(text);
21+
22+
expect(getByText(text)).toBeTruthy();
23+
});
24+
});
25+
});
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import React from 'react';
2+
import { render, fireEvent } from '@testing-library/react-native';
3+
4+
import AuthCheckHeader from './AuthCheckHeader';
5+
6+
const clickAuthCheckHeader = jest.fn();
7+
8+
function renderAuthCheckHeader(onClick = clickAuthCheckHeader, text = 'mock', active = true) {
9+
return render(<AuthCheckHeader onClick={onClick} text={text} active={active} />);
10+
}
11+
12+
describe('AuthCheckHeader', () => {
13+
it('renders without exploding', () => {
14+
const { container } = renderAuthCheckHeader();
15+
16+
expect(container).toBeTruthy();
17+
});
18+
19+
context('when pass props', () => {
20+
it('renders text properly', () => {
21+
const text = 'Test';
22+
const { getByText } = renderAuthCheckHeader(undefined, text);
23+
24+
expect(getByText(text)).toBeTruthy();
25+
});
26+
27+
it('click select button calls propery', () => {
28+
const { getByText } = renderAuthCheckHeader();
29+
30+
fireEvent.press(getByText('mock'));
31+
32+
// expect(clickAuthCheckHeader).toBeCalled();
33+
});
34+
35+
it('renders "active = false" properly', () => {
36+
// TODO:
37+
});
38+
});
39+
});

0 commit comments

Comments
ย (0)