This repository was archived by the owner on Jul 28, 2022. It is now read-only.
This repository was archived by the owner on Jul 28, 2022. It is now read-only.
unit tests not working when importing @stencil/redux #97
Open
Description
I have this issue that when I try to unit test my component I get errors when that component imports @stencil/redux
To create this test project I just did
$> npm init stencil
I installed redux
and @stencil/redux
so my package.json
looks like
{
"name": "error",
"version": "0.0.1",
"description": "Stencil Component Starter",
"main": "dist/index.js",
"module": "dist/index.mjs",
"es2015": "dist/esm/index.mjs",
"es2017": "dist/esm/index.mjs",
"types": "dist/types/index.d.ts",
"collection": "dist/collection/collection-manifest.json",
"collection:main": "dist/collection/index.js",
"unpkg": "dist/error/error.js",
"files": [
"dist/",
"loader/"
],
"scripts": {
"build": "stencil build --docs",
"start": "stencil build --dev --watch --serve",
"test": "stencil test --spec --e2e",
"test.watch": "stencil test --spec --e2e --watchAll",
"generate": "stencil generate"
},
"devDependencies": {
"@stencil/core": "^1.8.4",
"@types/jest": "24.0.25",
"@types/puppeteer": "1.20.3",
"jest": "24.9.0",
"jest-cli": "24.9.0",
"puppeteer": "1.20.0"
},
"license": "MIT",
"dependencies": {
"@stencil/redux": "^0.1.2",
"redux": "^4.0.5"
}
}
This is what my-component.tsx
looks like:
import { Component, h } from '@stencil/core';
import '@stencil/redux';
@Component({
tag: 'my-component',
styleUrl: 'my-component.css',
shadow: true
})
export class MyComponent {
render() {
return <div>Hello, World!</div>;
}
}
And the my-component.spec.ts
file
import { MyComponent } from "./my-component";
describe("my-component", () => {
it("builds", () => {
expect(new MyComponent()).toBeTruthy();
});
});
Thats it, now when I run the test I get the following error:
$> yarn test
yarn run v1.21.1
$ stencil test --spec --e2e
[49:05.0] @stencil/core v1.8.6 🚚
[49:05.1] testing e2e and spec files
[49:05.1] build, error, dev mode, started ...
[49:05.2] transpile started ...
[49:05.2] transpile finished in 5 ms
[49:05.2] copy started ...
[49:05.2] generate styles started ...
[49:05.2] bundling components started ...
[49:05.3] generate styles finished in 52 ms
[49:06.0] copy finished (0 files) in 749 ms
[49:06.0] bundling components finished in 744 ms
[49:06.0] build finished in 908 ms
[49:06.1] jest args: --e2e --spec --max-workers=16
PASS src/utils/utils.spec.ts
FAIL src/components/my-component/my-component.spec.ts
● Test suite failed to run
Cannot find module '../esm/index.js' from 'index.js'
However, Jest was able to find:
'./my-component.css'
'./my-component.spec.ts'
'./my-component.tsx'
You might want to include a file extension in your import, or update your 'moduleFileExtensions', which is currently ['ts', 'tsx', 'js', 'jsx', 'json'].
See https://jestjs.io/docs/en/configuration#modulefileextensions-array-string
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:259:17)
at Object.<anonymous> (node_modules/@stencil/redux/dist/index.js:2:18)
Test Suites: 1 failed, 1 passed, 2 total
Tests: 4 passed, 4 total
Snapshots: 0 total
Time: 0.677s, estimated 1s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
If I remove import '@stencil/redux';
from my-component
it all works again like a charm
This error show similarities with this issue
Metadata
Metadata
Assignees
Labels
No labels