Skip to content

Commit 7f68634

Browse files
committed
test: add ssr support test
1 parent 89bb861 commit 7f68634

File tree

6 files changed

+82
-14
lines changed

6 files changed

+82
-14
lines changed

.babelrc

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"presets": ["@babel/preset-env", "@babel/preset-react"],
3+
"plugins": ["@babel/plugin-proposal-class-properties"]
4+
}

package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
"main": "lib/react-optimize.js",
55
"license": "MIT",
66
"scripts": {
7-
"test": "cross-env NODE_ENV=test karma start",
7+
"test:node": "mocha --require @babel/register test/test.node.js",
8+
"test:browser": "cross-env NODE_ENV=test karma start",
9+
"test": "yarn run test:node && yarn run test:browser",
810
"build": "webpack",
911
"watch": "webpack --watch",
1012
"prepublishOnly": "yarn run build"
@@ -20,6 +22,7 @@
2022
"@babel/polyfill": "^7.4.3",
2123
"@babel/preset-env": "^7.1.5",
2224
"@babel/preset-react": "^7.0.0",
25+
"@babel/register": "^7.4.0",
2326
"@commitlint/cli": "^7.5.2",
2427
"@commitlint/config-conventional": "^7.5.0",
2528
"babel-loader": "^8.0.4",

test/setup.js

-7
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,6 @@ import chai from "chai";
44

55
Enzyme.configure({ adapter: new Adapter() });
66

7-
// ----------------------------------------
8-
// Mocha
9-
// ----------------------------------------
10-
mocha.setup({
11-
ui: "bdd"
12-
});
13-
147
// ----------------------------------------
158
// Chai
169
// ----------------------------------------

test/test.node.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import "./setup";
2+
3+
import React from "react";
4+
import ReactDOM from "react-dom/server";
5+
import { Variant, Experiment } from "../src";
6+
7+
describe("ssr", () => {
8+
it("should render without errors", () => {
9+
const Loader = () => <div>loader</div>;
10+
const string = ReactDOM.renderToString(
11+
<Experiment id="abc" loader={<Loader />}>
12+
<Variant id="0">Original</Variant>
13+
</Experiment>
14+
);
15+
16+
expect(string).to.not.be.empty;
17+
});
18+
});

webpack.config.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ module.exports = {
2020
test: /\.m?js$/,
2121
exclude: /(node_modules|bower_components)/,
2222
use: {
23-
loader: "babel-loader",
24-
options: {
25-
presets: ["@babel/preset-env", "@babel/preset-react"],
26-
plugins: ["@babel/plugin-proposal-class-properties"]
27-
}
23+
loader: "babel-loader"
2824
}
2925
}
3026
]

yarn.lock

+55-1
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,18 @@
564564
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
565565
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
566566

567+
"@babel/register@^7.4.0":
568+
version "7.4.0"
569+
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.0.tgz#d9d0a621db268fb14200f2685a4f8924c822404c"
570+
integrity sha512-ekziebXBnS/7V6xk8sBfLSSD6YZuy6P29igBtR6OL/tswKdxOV+Yqq0nzICMguVYtGRZYUCGpfGV8J9Za2iBdw==
571+
dependencies:
572+
core-js "^3.0.0"
573+
find-cache-dir "^2.0.0"
574+
lodash "^4.17.11"
575+
mkdirp "^0.5.1"
576+
pirates "^4.0.0"
577+
source-map-support "^0.5.9"
578+
567579
"@babel/template@^7.1.0", "@babel/template@^7.1.2":
568580
version "7.1.2"
569581
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644"
@@ -2315,6 +2327,11 @@ core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5:
23152327
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895"
23162328
integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==
23172329

2330+
core-js@^3.0.0:
2331+
version "3.0.1"
2332+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.1.tgz#1343182634298f7f38622f95e73f54e48ddf4738"
2333+
integrity sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew==
2334+
23182335
[email protected], core-util-is@~1.0.0:
23192336
version "1.0.2"
23202337
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -3266,6 +3283,15 @@ find-cache-dir@^1.0.0:
32663283
make-dir "^1.0.0"
32673284
pkg-dir "^2.0.0"
32683285

3286+
find-cache-dir@^2.0.0:
3287+
version "2.1.0"
3288+
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
3289+
integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
3290+
dependencies:
3291+
commondir "^1.0.1"
3292+
make-dir "^2.0.0"
3293+
pkg-dir "^3.0.0"
3294+
32693295
find-npm-prefix@^1.0.2:
32703296
version "1.0.2"
32713297
resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf"
@@ -4910,6 +4936,14 @@ make-dir@^1.0.0:
49104936
dependencies:
49114937
pify "^3.0.0"
49124938

4939+
make-dir@^2.0.0:
4940+
version "2.1.0"
4941+
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
4942+
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
4943+
dependencies:
4944+
pify "^4.0.1"
4945+
semver "^5.6.0"
4946+
49134947
"make-fetch-happen@^2.5.0 || 3 || 4", make-fetch-happen@^4.0.1:
49144948
version "4.0.1"
49154949
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083"
@@ -5432,6 +5466,11 @@ node-libs-browser@^2.0.0:
54325466
util "^0.10.3"
54335467
vm-browserify "0.0.4"
54345468

5469+
node-modules-regexp@^1.0.0:
5470+
version "1.0.0"
5471+
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
5472+
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
5473+
54355474
node-pre-gyp@^0.10.0:
54365475
version "0.10.3"
54375476
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc"
@@ -6292,6 +6331,13 @@ pinkie@^2.0.0:
62926331
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
62936332
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
62946333

6334+
pirates@^4.0.0:
6335+
version "4.0.1"
6336+
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
6337+
integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
6338+
dependencies:
6339+
node-modules-regexp "^1.0.0"
6340+
62956341
pkg-conf@^2.1.0:
62966342
version "2.1.0"
62976343
resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058"
@@ -7354,6 +7400,14 @@ source-map-resolve@^0.5.0:
73547400
source-map-url "^0.4.0"
73557401
urix "^0.1.0"
73567402

7403+
source-map-support@^0.5.9:
7404+
version "0.5.12"
7405+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
7406+
integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==
7407+
dependencies:
7408+
buffer-from "^1.0.0"
7409+
source-map "^0.6.0"
7410+
73577411
source-map-url@^0.4.0:
73587412
version "0.4.0"
73597413
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
@@ -7362,7 +7416,7 @@ source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6:
73627416
version "0.5.7"
73637417
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
73647418

7365-
source-map@^0.6.1, source-map@~0.6.1:
7419+
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
73667420
version "0.6.1"
73677421
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
73687422

0 commit comments

Comments
 (0)