From d9d14b3a526839a4a66c7c9fe53ab08269e50056 Mon Sep 17 00:00:00 2001 From: Maciej Jastrzebski Date: Thu, 14 May 2020 15:03:05 +0200 Subject: [PATCH 01/16] Added @testing-library/jest-native to devDependencies --- package.json | 1 + yarn.lock | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 363709620..87d62ef4b 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@babel/core": "^7.9.0", "@callstack/eslint-config": "^9.1.0", "@release-it/conventional-changelog": "^1.1.0", + "@testing-library/jest-native": "^3.1.0", "@types/react": "^16.9.34", "@types/react-native": "^0.62.2", "@types/react-test-renderer": "^16.9.2", diff --git a/yarn.lock b/yarn.lock index 03b191a5d..a20bfc4fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1352,6 +1352,18 @@ dependencies: defer-to-connect "^2.0.0" +"@testing-library/jest-native@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-native/-/jest-native-3.1.0.tgz#414c834dfb524ca82b86509d5479e365d4d5bbec" + integrity sha512-MZdsTsD6xrP5V0FTz2gVPG00ZMoKn4WniRitUH40zZTQ0DfMa5CVDpkAd5ed6qX1coDwS8vSCZS/JGMIDYjRQQ== + dependencies: + chalk "^2.4.1" + jest-diff "^24.0.0" + jest-matcher-utils "^24.0.0" + pretty-format "^24.0.0" + ramda "^0.26.1" + redent "^2.0.0" + "@types/babel__core@^7.1.7": version "7.1.7" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" @@ -3131,6 +3143,11 @@ detect-repo-changelog@1.0.1: lodash.find "^4.6.0" pify "^2.3.0" +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + diff-sequences@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.0.0.tgz#0760059a5c287637b842bd7085311db7060e88a6" @@ -5010,6 +5027,16 @@ jest-config@^26.0.1: micromatch "^4.0.2" pretty-format "^26.0.1" +jest-diff@^24.0.0, jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + jest-diff@^26.0.1: version "26.0.1" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.0.1.tgz#c44ab3cdd5977d466de69c46929e0e57f89aa1de" @@ -5141,6 +5168,16 @@ jest-leak-detector@^26.0.1: jest-get-type "^26.0.0" pretty-format "^26.0.1" +jest-matcher-utils@^24.0.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== + dependencies: + chalk "^2.0.1" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + jest-matcher-utils@^26.0.1: version "26.0.1" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.0.1.tgz#12e1fc386fe4f14678f4cc8dbd5ba75a58092911" @@ -7155,7 +7192,7 @@ prettier@^1.19.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -pretty-format@^24.7.0, pretty-format@^24.9.0: +pretty-format@^24.0.0, pretty-format@^24.7.0, pretty-format@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== @@ -7281,6 +7318,11 @@ quick-lru@^1.0.0: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= +ramda@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" + integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -8992,7 +9034,7 @@ uuid@7.0.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.1.tgz#95ed6ff3d8c881cbf85f0f05cc3915ef994818ef" integrity sha512-yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA== -uuid@7.0.3: +uuid@7.0.3, uuid@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== @@ -9112,7 +9154,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.9, which@^1.3.1: +which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== From c8ce74905baafc6a840e39928ab2e593a0ae0aea Mon Sep 17 00:00:00 2001 From: Maciej Jastrzebski Date: Thu, 14 May 2020 16:10:11 +0200 Subject: [PATCH 02/16] Tests for jest-native matchers --- package.json | 2 +- src/__tests__/jest-native.test.js | 94 +++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 src/__tests__/jest-native.test.js diff --git a/package.json b/package.json index 87d62ef4b..5739dbfab 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@babel/core": "^7.9.0", "@callstack/eslint-config": "^9.1.0", "@release-it/conventional-changelog": "^1.1.0", - "@testing-library/jest-native": "^3.1.0", + "@testing-library/jest-native": "~3.1.0", "@types/react": "^16.9.34", "@types/react-native": "^0.62.2", "@types/react-test-renderer": "^16.9.2", diff --git a/src/__tests__/jest-native.test.js b/src/__tests__/jest-native.test.js new file mode 100644 index 000000000..c6ed89854 --- /dev/null +++ b/src/__tests__/jest-native.test.js @@ -0,0 +1,94 @@ +// @flow +/* eslint-disable react-native/no-color-literals */ +import React from 'react'; +import { StyleSheet, View, Button, Text } from 'react-native'; +import { render } from '..'; +import '@testing-library/jest-native/extend-expect'; + +const style = StyleSheet.create({ + style1: { + color: 'red', + backgroundColor: 'green', + }, +}); + +test('jest-native matchers work correctly', () => { + const { getByText, getByA11yHint } = render( + +