Skip to content

Commit dcee1d9

Browse files
authored
test(react): add e2e tests (#63)
1 parent 5d16e39 commit dcee1d9

23 files changed

+1375
-54
lines changed

js/.babelrc renamed to .babelrc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
2+
"presets": [
3+
"@babel/preset-react"
4+
],
25
"plugins": [
3-
"@babel/plugin-transform-react-jsx",
46
"@babel/plugin-transform-modules-commonjs"
57
]
6-
}
8+
}

.eslintrc.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
2+
{
3+
"root": true,
4+
"parser": "babel-eslint",
5+
"extends": [
6+
"eslint:recommended",
7+
"plugin:react/recommended",
8+
"plugin:import/errors",
9+
"plugin:import/warnings",
10+
"plugin:jsx-a11y/recommended",
11+
"plugin:react-hooks/recommended",
12+
"airbnb",
13+
"prettier",
14+
"plugin:jest/all",
15+
"plugin:jest-dom/recommended"
16+
],
17+
"env": {
18+
"browser": true,
19+
"commonjs": true,
20+
"es6": true,
21+
"node": true
22+
},
23+
"parserOptions": {
24+
"ecmaVersion": 2018,
25+
"sourceType": "module",
26+
"ecmaFeatures": {
27+
"jsx": true
28+
}
29+
},
30+
"settings": {
31+
"react": {
32+
"version": "detect"
33+
}
34+
},
35+
"rules": {
36+
"semi": 0,
37+
"react/jsx-filename-extension": 0,
38+
"react/react-in-jsx-scope": 0,
39+
"react/prop-types": 0,
40+
"implicit-arrow-linebreak": 0,
41+
"object-curly-newline": 0,
42+
"react/no-unescaped-entities": 0,
43+
"react/jsx-one-expression-per-line": 0,
44+
"prettier/prettier": ["error"],
45+
"jsx-a11y/anchor-is-valid": 0,
46+
},
47+
"plugins": ["prettier"]
48+
}

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@ jobs:
5151
- run: yarn shadow-cljs compile test
5252

5353
- run: node out/node-tests.js
54-
- run: yarn jest js/tests
54+
- run: yarn jest src/*
5555
- run: yarn tsd

.prettierrc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"endOfLine": "lf",
3+
"semi": false,
4+
"singleQuote": true,
5+
"tabWidth": 2,
6+
"trailingComma": "all",
7+
"printWidth": 100
8+
}

js/README.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

package.json

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
"main": "./dist/js/homebase.react.js",
88
"private": false,
99
"scripts": {
10-
"dev": "shadow-cljs watch dev & babel js --out-dir src/js_gen --watch && kill $!",
10+
"dev": "shadow-cljs watch dev & babel src/dev/example/js --out-dir src/dev/example/js_compiled --watch && kill $!",
1111
"build": "rm -rf dist && shadow-cljs release npm && yarn bundle-ts",
1212
"build:dev": "rm -rf dist && shadow-cljs compile npm && yarn bundle-ts",
13-
"test:js": "yarn build && jest js/tests && yarn tsd",
14-
"test:js:dev": "yarn build:dev && jest js/tests && yarn tsd",
13+
"test:js": "yarn build && jest src/* && yarn tsd",
14+
"test:js:dev": "yarn build:dev && jest src/* && yarn tsd",
1515
"test:cljs": "shadow-cljs compile test && node out/node-tests.js",
1616
"test:cljs:watch": "shadow-cljs watch test-autorun",
1717
"test": "yarn test:cljs && yarn test:js",
@@ -35,6 +35,7 @@
3535
"@babel/cli": "7.11.6",
3636
"@babel/plugin-transform-modules-commonjs": "7.12.1",
3737
"@babel/plugin-transform-react-jsx": "7.10.4",
38+
"@babel/preset-react": "^7.12.13",
3839
"@commitlint/cli": "^11.0.0",
3940
"@commitlint/config-conventional": "^11.0.0",
4041
"@semantic-release/changelog": "5.0.1",
@@ -43,20 +44,34 @@
4344
"@semantic-release/github": "7.1.1",
4445
"@semantic-release/npm": "7.0.6",
4546
"@semantic-release/release-notes-generator": "9.0.1",
47+
"@testing-library/jest-dom": "^5.11.9",
48+
"@testing-library/react": "^11.2.5",
4649
"@types/react": "^16.9.56",
50+
"babel-eslint": "^10.1.0",
4751
"babel-runtime": "6.26.0",
4852
"commitizen": "^4.2.2",
4953
"create-react-class": "15.6.3",
5054
"cz-conventional-changelog": "^3.3.0",
5155
"enzyme": "3.11.0",
5256
"enzyme-adapter-react-16": "1.15.5",
57+
"eslint": "^7.20.0",
58+
"eslint-config-airbnb": "^18.2.1",
59+
"eslint-config-prettier": "^7.2.0",
60+
"eslint-plugin-import": "^2.22.1",
61+
"eslint-plugin-jest": "^24.1.3",
62+
"eslint-plugin-jest-dom": "^3.6.5",
63+
"eslint-plugin-jsx-a11y": "^6.4.1",
64+
"eslint-plugin-prettier": "^3.3.1",
65+
"eslint-plugin-react": "^7.22.0",
66+
"eslint-plugin-react-hooks": "^4.2.0",
5367
"firebase": "^8.0.2",
5468
"firebaseui": "^4.7.1",
5569
"highlight.js": "10.4.1",
5670
"husky": "5.0.0-beta.0",
5771
"jest": "26.6.0",
5872
"marked": "1.2.0",
5973
"pinst": "2.0.0",
74+
"prettier": "^2.2.1",
6075
"react": "16.14.0",
6176
"react-component-benchmark": "0.0.4",
6277
"react-dom": "16.14.0",

shadow-cljs.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
:asset-path "/js"
1818
:compiler-options {:devcards :true
1919
:output-feature-set :es6}
20-
:modules {:main {:init-fn example.core/init}}
20+
:modules {:main {:init-fn dev.example.core/init}}
2121
:js-options {:resolve {"devcards-marked" {:target :npm :require "marked"}
2222
"devcards-syntax-highlighter" {:target :npm :require "highlight.js"}}}}
2323
:test {:target :node-test
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
(ns example.array
1+
(ns dev.example.array
22
(:require
33
[devcards.core :as dc]
44
[homebase.react]
5-
["../js_gen/array-example" :as react-example])
5+
["./js_compiled/array" :as react-example])
66
(:require-macros
77
[devcards.core :refer [defcard-rg defcard-doc]]
88
[dev.macros :refer [inline-resource]]))
@@ -12,10 +12,10 @@
1212

1313
(def code-snippet
1414
(clojure.string/replace-first
15-
(inline-resource "js/array-example.jsx")
15+
(inline-resource "src/dev/example/js/array.jsx")
1616
"const { HomebaseProvider, useTransact, useEntity } = window.homebase.react"
1717
"import { HomebaseProvider, useTransact, useEntity } from 'homebase-react'"))
1818
(defcard-doc
19-
"[🔗GitHub](https://github.com/homebaseio/homebase-react/blob/master/js/array-example.jsx)"
19+
"[🔗GitHub](https://github.com/homebaseio/homebase-react/blob/master/src/dev/example/js/array.jsx)"
2020
(str "```javascript\n" code-snippet "\n```"))
2121

src/example/core.cljs renamed to src/dev/example/core.cljs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
(ns example.core
1+
(ns dev.example.core
22
(:require
33
["highlight.js" :as highlight]
44
["marked" :as marked]
55
[cljsjs.react]
66
[cljsjs.react.dom]
77
[reagent.core]
88
[devcards.core :as dc]
9-
[example.array]
10-
[example.counter]
11-
[example.todo]
12-
[example.todo-firebase]))
9+
[dev.example.array]
10+
[dev.example.counter]
11+
[dev.example.todo]
12+
[dev.example.todo-firebase]))
1313

1414
(js/goog.exportSymbol "marked" marked)
1515
(js/goog.exportSymbol "DevcardsMarked" marked)
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
(ns example.counter
1+
(ns dev.example.counter
22
(:require
33
[devcards.core :as dc]
44
[homebase.react]
5-
["../js_gen/counter-example" :as react-example])
5+
["./js_compiled/counter" :as react-example])
66
(:require-macros
77
[devcards.core :refer [defcard-rg defcard-doc]]
88
[dev.macros :refer [inline-resource]]))
@@ -12,10 +12,10 @@
1212

1313
(def code-snippet
1414
(clojure.string/replace-first
15-
(inline-resource "js/counter-example.jsx")
15+
(inline-resource "src/dev/example/js/counter.jsx")
1616
"const { HomebaseProvider, useTransact, useEntity } = window.homebase.react"
1717
"import { HomebaseProvider, useTransact, useEntity } from 'homebase-react'"))
1818
(defcard-doc
19-
"[🔗GitHub](https://github.com/homebaseio/homebase-react/blob/master/js/counter-example.jsx)"
19+
"[🔗GitHub](https://github.com/homebaseio/homebase-react/blob/master/src/dev/example/js/counter.jsx)"
2020
(str "```javascript\n" code-snippet "\n```"))
2121

0 commit comments

Comments
 (0)