From 5d4cee1c7bfb91fe2c4e88ccb2169c6f04327919 Mon Sep 17 00:00:00 2001 From: "georgian-sorin.maxim" Date: Wed, 17 Mar 2021 09:15:26 +0000 Subject: [PATCH 1/2] Change Git Checks --- .github/dependabot.yml | 15 + .github/workflows/main.yml | 40 ++ .github/workflows/ts-ignore-counter.yml | 48 ++ __mocks__/react-native-device-info.js | 32 ++ __mocks__/react-native-permissions.js | 3 + .../__tests__/ButtonWithIcon.spec.tsx | 2 +- .../ButtonWithIcon.spec.tsx.snap | 2 +- .../__snapshots__/Card.spec.tsx.snap | 104 ++-- .../SettingsScreen.spec.tsx.snap | 501 ++++++++++++++++++ src/store/reducers/__tests__/data.spec.tsx | 5 +- 10 files changed, 706 insertions(+), 46 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/ts-ignore-counter.yml create mode 100644 __mocks__/react-native-device-info.js create mode 100644 __mocks__/react-native-permissions.js create mode 100644 src/screens/__tests__/__snapshots__/SettingsScreen.spec.tsx.snap diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..d8b3a27d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: + - package-ecosystem: npm + directory: '/' + schedule: + interval: daily + time: '21:00' + open-pull-requests-limit: 10 + ignore: + - dependency-name: typeorm + versions: + - '> 0.2.24' + - '< 0.3' + reviewers: + - 'theappnest/backend' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..327a6427 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,40 @@ +name: Git Checks + +on: [push] + +jobs: + build: + name: Run tests, linter, TS + runs-on: macOS-latest + + steps: + - name: Check out Git repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v1 + with: + node-version: 12 + + - name: Install dependencies + run: yarn + + - name: Pod Install + working-directory: ios + run: pod install + + # TS + - name: Run TypeScript + run: yarn tsc + + # Run linter + - name: Run linter + run: yarn lint + + # Run Prettier + - name: Run prettier + run: yarn prettier + + # Tests + - name: Run unit tests + run: yarn test \ No newline at end of file diff --git a/.github/workflows/ts-ignore-counter.yml b/.github/workflows/ts-ignore-counter.yml new file mode 100644 index 00000000..c1a00ac2 --- /dev/null +++ b/.github/workflows/ts-ignore-counter.yml @@ -0,0 +1,48 @@ +name: TypeScript '@ts-ignore' counter +on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v2 + with: + ref: master + - name: Count ts-ignore on master + id: before + run: | + export BEFORE=`find . -type f \( -name "*.ts" -or -name "*.tsx" \) -exec grep -o "@ts-ignore" {} \; |wc -l` + echo "::set-output name=count::$BEFORE" + - uses: actions/checkout@v2 + - name: Count ts-ignore on this commit + id: after + run: | + export AFTER=`find . -type f \( -name "*.ts" -or -name "*.tsx" \) -exec grep -o "@ts-ignore" {} \; |wc -l` + echo "::set-output name=count::$AFTER" + - name: Do the math + id: result + run: | + export BEFORE="${{ steps.before.outputs.count }}" + export AFTER="${{ steps.after.outputs.count }}" + if [[ `expr $AFTER - $BEFORE` -gt 0 ]]; then + export DIFF=`expr $AFTER - $BEFORE` + export CHANGE="(went up by $DIFF) " + for n in $(seq $DIFF); do export CHANGE="$CHANGE:broken_heart:"; done + elif [[ `expr $BEFORE - $AFTER` -gt 0 ]]; then + export DIFF=`expr $BEFORE - $AFTER` + export CHANGE="(went down by $DIFF) " + for n in $(seq $DIFF); do export CHANGE="$CHANGE:sparkles:"; done + else + export CHANGE="(unchanged)" + fi + echo "::set-output name=comment::**ts-ignore**'s: $AFTER $CHANGE" + - name: Post issue comment + run: | + jq --arg msg "${{ steps.result.outputs.comment }}" -nc '{"body": $msg}' | \ + curl -sL -X POST -d @- \ + -H "Content-Type: application/json" \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "https://api.github.com/repos/$GITHUB_REPOSITORY/commits/$GITHUB_SHA/comments" \ No newline at end of file diff --git a/__mocks__/react-native-device-info.js b/__mocks__/react-native-device-info.js new file mode 100644 index 00000000..250db168 --- /dev/null +++ b/__mocks__/react-native-device-info.js @@ -0,0 +1,32 @@ +module.exports = { + getUserAgent: () => "TestUser/Agent", + getManufacturer: () => "Apple", + getDeviceId: () => "DeviceId", + getSystemVersion: () => "10.0", + getReadableVersion: () => "1.0.0.1", + getApplicationName: () => "Mindful Chef (Dev)", + isEmulator: () => true, + isTablet: () => false, + getModel: () => "Mock iPhone 12", + getVersion: jest.fn(() => Promise.resolve("24.0")), + getBundleId: jest.fn(() => Promise.resolve("com.mindfulchef.uat")), + getBuildNumber: jest.fn(() => Promise.resolve("3.0.0")), + getIpAddress: jest.fn(() => Promise.resolve("10.158.70.93")), + getUniqueID: jest.fn(), + getBrand: jest.fn(), + getSystemName: jest.fn(), + getDeviceName: jest.fn(), + getDeviceLocale: jest.fn(), + getDeviceCountry: jest.fn(), + getTimezone: jest.fn(), + is24Hour: jest.fn(), + isPinOrFingerprintSet: jest.fn(), + getAPILevel: jest.fn(), + getInstanceID: jest.fn(), + getPhoneNumber: jest.fn(), + getFirstInstallTime: jest.fn(), + getLastUpdateTime: jest.fn(), + getSerialNumber: jest.fn(), + getMACAddress: jest.fn(), + getCarrier: jest.fn(), +}; diff --git a/__mocks__/react-native-permissions.js b/__mocks__/react-native-permissions.js new file mode 100644 index 00000000..bec05185 --- /dev/null +++ b/__mocks__/react-native-permissions.js @@ -0,0 +1,3 @@ +module.exports = { + checkNotifications: () => true, +}; diff --git a/src/components/__tests__/ButtonWithIcon.spec.tsx b/src/components/__tests__/ButtonWithIcon.spec.tsx index d25b5d17..e48bbdb0 100644 --- a/src/components/__tests__/ButtonWithIcon.spec.tsx +++ b/src/components/__tests__/ButtonWithIcon.spec.tsx @@ -6,7 +6,7 @@ import ButtonWithIcon from "../ButtonWithIcon"; it(`renders correctly`, () => { const defaultProps = { label: "Google", - icon: "Icon", + icon: "add", onPress: () => {}, }; const tree = renderer.create().toJSON(); diff --git a/src/components/__tests__/__snapshots__/ButtonWithIcon.spec.tsx.snap b/src/components/__tests__/__snapshots__/ButtonWithIcon.spec.tsx.snap index 210075f4..d7946203 100644 --- a/src/components/__tests__/__snapshots__/ButtonWithIcon.spec.tsx.snap +++ b/src/components/__tests__/__snapshots__/ButtonWithIcon.spec.tsx.snap @@ -72,7 +72,7 @@ exports[`renders correctly 1`] = ` ] } > - ? +  + Google.com + + -  + , , - - Google.com - - - , , - + "alignItems": "center", + "backgroundColor": "#f7f7f7", + "flex": 1, + "height": 100, + "justifyContent": "center", + "width": 100, + } + } + > + +  + + + `; diff --git a/src/screens/__tests__/__snapshots__/SettingsScreen.spec.tsx.snap b/src/screens/__tests__/__snapshots__/SettingsScreen.spec.tsx.snap new file mode 100644 index 00000000..45b807ca --- /dev/null +++ b/src/screens/__tests__/__snapshots__/SettingsScreen.spec.tsx.snap @@ -0,0 +1,501 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`SettingsScreen renders the SettingsScreen screen 1`] = ` + + + + + + + Your details + + + + + + + Name + + + John + + Doe + + + + + Email + + + test@test.com + + + + + App version + + + + + + + + UUID + + + + + + + + + + + + +  + + + + Terms & Conditions + + + + + + + + +  + + + + Contact + + + + + + + + +  + + + + Logout + + + + + + +`; diff --git a/src/store/reducers/__tests__/data.spec.tsx b/src/store/reducers/__tests__/data.spec.tsx index 2b6fe68a..16ef6f05 100644 --- a/src/store/reducers/__tests__/data.spec.tsx +++ b/src/store/reducers/__tests__/data.spec.tsx @@ -9,7 +9,6 @@ describe("Data reducer", () => { }); expect(state).toEqual({ - data: [], universities: [], }); }); @@ -22,7 +21,7 @@ describe("Data reducer", () => { payload, }); - expect(state).toEqual({ data: [], universities: ["mock"] }); + expect(state).toEqual({ universities: ["mock"] }); }); it("DATA_FETCHED_FAILURE", () => { @@ -33,6 +32,6 @@ describe("Data reducer", () => { payload, }); - expect(state).toEqual({ data: [], universities: [] }); + expect(state).toEqual({ universities: [] }); }); }); From 8dfc3ee1da77411a19f428192e5ad0fd31446411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Mar 2021 09:20:32 +0000 Subject: [PATCH 2/2] Bump typescript from 3.9.7 to 3.9.9 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.7 to 3.9.9. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.7...v3.9.9) Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 40d9d570..983b6aa5 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "redux-devtools-extension": "^2.13.8", "redux-logger": "^3.0.6", "ts-jest": "^26.1.3", - "typescript": "^3.7.5" + "typescript": "^3.9.9" }, "private": true, "name": "react-native-project", diff --git a/yarn.lock b/yarn.lock index 36ed8e43..1b1bce4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8062,9 +8062,10 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -typescript@^3.7.5: - version "3.9.7" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" +typescript@^3.9.9: + version "3.9.9" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" + integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== ua-parser-js@^0.7.18: version "0.7.21"