Skip to content

Commit 16fa888

Browse files
committed
chore: set to commonjs for jest and development
* update examples
1 parent f30f55c commit 16fa888

File tree

7 files changed

+4153
-79
lines changed

7 files changed

+4153
-79
lines changed

__tests__/test_makeprops.js

Lines changed: 716 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

__tests__/test_makeprops.res

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
open Jest
2+
3+
// make pipe-first
4+
let expect = x => Expect.expect(x)
5+
let toBe = x => Expect.toBe(_, x)
6+
let toEqual = x => Expect.toEqual(_, x)
7+
let pseudo = Chakra.pseudo
8+
external asPseudo: 'a => Chakra__MakeProps.Pseudo.t = "%identity"
9+
10+
describe("Test MakeProps", () => {
11+
let testCasesColors = list{
12+
(#black, "black"),
13+
(#white, "white"),
14+
(#gray, "gray"),
15+
(#gray50, "gray.50"),
16+
(#gray100, "gray.100"),
17+
(#gray200, "gray.200"),
18+
(#gray300, "gray.300"),
19+
(#gray400, "gray.400"),
20+
(#gray500, "gray.500"),
21+
(#gray600, "gray.600"),
22+
(#gray700, "gray.700"),
23+
(#gray800, "gray.800"),
24+
(#gray900, "gray.900"),
25+
(#red, "red"),
26+
(#red50, "red.50"),
27+
(#red100, "red.100"),
28+
(#red200, "red.200"),
29+
(#red300, "red.300"),
30+
(#red400, "red.400"),
31+
(#red500, "red.500"),
32+
(#red600, "red.600"),
33+
(#red700, "red.700"),
34+
(#red800, "red.800"),
35+
(#red900, "red.900"),
36+
(#orange, "orange"),
37+
(#orange50, "orange.50"),
38+
(#orange100, "orange.100"),
39+
(#orange200, "orange.200"),
40+
(#orange300, "orange.300"),
41+
(#orange400, "orange.400"),
42+
(#orange500, "orange.500"),
43+
(#orange600, "orange.600"),
44+
(#orange700, "orange.700"),
45+
(#orange800, "orange.800"),
46+
(#orange900, "orange.900"),
47+
(#yellow, "yellow"),
48+
(#yellow50, "yellow50"),
49+
(#yellow100, "yellow.100"),
50+
(#yellow200, "yellow.200"),
51+
(#yellow300, "yellow.300"),
52+
(#yellow400, "yellow.400"),
53+
(#yellow500, "yellow.500"),
54+
(#yellow600, "yellow.600"),
55+
(#yellow700, "yellow.700"),
56+
(#yellow800, "yellow.800"),
57+
(#yellow900, "yellow.900"),
58+
(#green, "green"),
59+
(#green50, "green.50"),
60+
(#green100, "green.100"),
61+
(#green200, "green.200"),
62+
(#green300, "green.300"),
63+
(#green400, "green.400"),
64+
(#green500, "green.500"),
65+
(#green600, "green.600"),
66+
(#green700, "green.700"),
67+
(#green800, "green.800"),
68+
(#green900, "green.900"),
69+
(#teal, "teal"),
70+
(#teal50, "teal.50"),
71+
(#teal100, "teal.100"),
72+
(#teal200, "teal.200"),
73+
(#teal300, "teal.300"),
74+
(#teal400, "teal.400"),
75+
(#teal500, "teal.500"),
76+
(#teal600, "teal.600"),
77+
(#teal700, "teal.700"),
78+
(#teal800, "teal.800"),
79+
(#teal900, "teal.900"),
80+
(#blue, "blue"),
81+
(#blue50, "blue.50"),
82+
(#blue100, "blue.100"),
83+
(#blue200, "blue.200"),
84+
(#blue300, "blue.300"),
85+
(#blue400, "blue.400"),
86+
(#blue500, "blue.500"),
87+
(#blue600, "blue.600"),
88+
(#blue700, "blue.700"),
89+
(#blue800, "blue.800"),
90+
(#blue900, "blue.900"),
91+
(#cyan, "cyan"),
92+
(#cyan50, "cyan.50"),
93+
(#cyan100, "cyan.100"),
94+
(#cyan200, "cyan.200"),
95+
(#cyan300, "cyan.300"),
96+
(#cyan400, "cyan.400"),
97+
(#cyan500, "cyan.500"),
98+
(#cyan600, "cyan.600"),
99+
(#cyan700, "cyan.700"),
100+
(#cyan800, "cyan.800"),
101+
(#cyan900, "cyan.900"),
102+
(#purple, "purple"),
103+
(#purple50, "purple.50"),
104+
(#purple100, "purple.100"),
105+
(#purple200, "purple.200"),
106+
(#purple300, "purple.300"),
107+
(#purple400, "purple.400"),
108+
(#purple500, "purple.500"),
109+
(#purple600, "purple.600"),
110+
(#purple700, "purple.700"),
111+
(#purple800, "purple.800"),
112+
(#purple900, "purple.900"),
113+
(#pink, "pink"),
114+
(#pink50, "pink.50"),
115+
(#pink100, "pink.100"),
116+
(#pink200, "pink.200"),
117+
(#pink300, "pink.300"),
118+
(#pink400, "pink.400"),
119+
(#pink500, "pink.500"),
120+
(#pink600, "pink.600"),
121+
(#pink700, "pink.700"),
122+
(#pink800, "pink.800"),
123+
(#pink900, "pink.900"),
124+
}
125+
126+
let testCasesPseudo = list{(pseudo(~color=#teal900, ()), {"color": "teal.900"})}
127+
128+
testAll("Chakra UI Theme Color Variant", testCasesColors, ((case, expected)) => {
129+
open Chakra__MakeProps
130+
let result = Color.identity(case)
131+
let expected = expected->Identity.fromString
132+
result->expect->toBe(expected)
133+
})
134+
testAll("Pseudo Creation", testCasesPseudo, ((case, expected)) => {
135+
let expected = expected->asPseudo
136+
case->expect->toEqual(expected)
137+
})
138+
})

bsconfig.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
"bsc-flags": ["-bs-super-errors", "-bs-no-version-header"],
99
"sources": [
1010
{ "dir": "src", "subdirs": true },
11-
{ "dir": "examples", "subdirs": true, "type": "dev" }
11+
{ "dir": "examples", "subdirs": true, "type": "dev" },
12+
{ "dir": "__tests__", "subdirs": true, "type": "dev" }
1213
],
1314
"bs-dependencies": ["@rescript/react"],
15+
"bs-dev-dependencies": ["@glennsl/bs-jest"],
1416
"package-specs": {
15-
"module": "es6",
17+
"module": "commonjs",
1618
"in-source": true
1719
}
1820
}

examples/app.js

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
'use strict';
12

2-
3-
import * as Curry from "rescript/lib/es6/curry.js";
4-
import * as React from "react";
5-
import * as Chakra from "../src/Chakra.js";
6-
import * as Caml_option from "rescript/lib/es6/caml_option.js";
7-
import * as Chakra__Box from "../src/Components/Chakra__Box.js";
8-
import * as Chakra__Button from "../src/Components/Chakra__Button.js";
9-
import * as React$1 from "@chakra-ui/react";
3+
var Curry = require("rescript/lib/js/curry.js");
4+
var React = require("react");
5+
var Chakra = require("../src/Chakra.js");
6+
var Caml_option = require("rescript/lib/js/caml_option.js");
7+
var Chakra__Box = require("../src/Components/Chakra__Box.js");
8+
var Chakra__Button = require("../src/Components/Chakra__Button.js");
9+
var React$1 = require("@chakra-ui/react");
1010

1111
function App$MarginAndProps(Props) {
1212
return React.createElement(React.Fragment, undefined, React.createElement(React$1.Box, Curry.app(Chakra__Box.makeProps(undefined, "two", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined)("Tomato", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined), [
@@ -1684,14 +1684,11 @@ var App = {
16841684
make: App$App
16851685
};
16861686

1687-
export {
1688-
MarginAndProps ,
1689-
LayoutWidthHeight ,
1690-
ColorsAndBackground ,
1691-
Borders ,
1692-
Background ,
1693-
Pseudo ,
1694-
App ,
1695-
1696-
}
1687+
exports.MarginAndProps = MarginAndProps;
1688+
exports.LayoutWidthHeight = LayoutWidthHeight;
1689+
exports.ColorsAndBackground = ColorsAndBackground;
1690+
exports.Borders = Borders;
1691+
exports.Background = Background;
1692+
exports.Pseudo = Pseudo;
1693+
exports.App = App;
16971694
/* react Not a pure module */

examples/pseudo.js

Lines changed: 3 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
{
22
"name": "rescript-chakra",
33
"version": "1.0.0",
4-
"description": "ReScript binding for React Chakra-UI.",
4+
"description": "⚡️ ReScript bindings for @chakra-ui/react",
55
"author": "ri7nz <hi@rin.rocks>",
66
"license": "MIT",
77
"homepage": "https://rescript-chakra.vercel.app/",
88
"files": [
9-
"/src",
9+
"src/**/*.re",
10+
"src/**/*.rei",
11+
"src/**/*.res",
12+
"src/**/*.resi",
1013
"bsconfig.json"
1114
],
1215
"repository": {
@@ -15,24 +18,39 @@
1518
},
1619
"bugs": "https://github.com/ri7nz/rescript-chakra/issues",
1720
"scripts": {
18-
"start": "rescript build -w -with-deps",
21+
"start": "rescript build -w",
1922
"prebuild": "rescript clean",
2023
"build": "rescript build -with-deps",
2124
"clean": "rescript clean",
2225
"semantic-release": "semantic-release",
23-
"ci": "yarn install --immutable"
26+
"ci": "yarn install --immutable",
27+
"pretest": "yarn build",
28+
"test": "jest"
2429
},
2530
"publishConfig": {
2631
"access": "public"
2732
},
2833
"devDependencies": {
34+
"@glennsl/bs-jest": "0.7.0",
2935
"@rescript/react": "0.10.3",
30-
"rescript": "9.1.3",
36+
"jest": "26.6.3",
37+
"rescript": "9.1.4",
3138
"semantic-release": "17.4.4",
3239
"semantic-release-npm-github-publish": "1.4.0"
3340
},
3441
"peerDependencies": {
3542
"@chakra-ui/react": ">=1.6.3",
3643
"@rescript/react": "0.10.3"
44+
},
45+
"jest": {
46+
"verbose": true,
47+
"testPathIgnorePatterns": [
48+
"/node_modules/",
49+
"/testUtils/"
50+
],
51+
"coveragePathIgnorePatterns": [
52+
"/node_modules/",
53+
"/testUtils/"
54+
]
3755
}
3856
}

0 commit comments

Comments
 (0)