Skip to content

Commit 93e8963

Browse files
committed
ADD: add jest config for tests
1 parent 2ed2e8c commit 93e8963

File tree

5 files changed

+1200
-15
lines changed

5 files changed

+1200
-15
lines changed

.github/workflows/run-tests.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,19 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- uses: actions/checkout@v4
12+
13+
- name: Enable Corepack
14+
run: corepack enable
15+
16+
- name: Set Yarn Version
17+
run: corepack prepare yarn@4.4.1 --activate
18+
19+
1220
- name: Use Node.js
1321
uses: actions/setup-node@v3
1422
with:
1523
node-version: '20'
24+
1625
- run: yarn install
1726
- run: yarn backstage-cli repo test
1827

jest.config.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import type { Config } from 'jest';
2+
3+
const config: Config = {
4+
preset: 'ts-jest',
5+
testEnvironment: 'jsdom',
6+
transform: {
7+
'^.+\\.(ts|tsx)$': 'ts-jest',
8+
'^.+\\.(js|jsx)$': 'babel-jest',
9+
},
10+
transformIgnorePatterns: ['/node_modules/'],
11+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
12+
};
13+
14+
export default config;

package.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,29 @@
4141
]
4242
},
4343
"devDependencies": {
44+
"@babel/core": "^7.26.0",
45+
"@babel/preset-env": "^7.26.0",
4446
"@babel/preset-react": "^7.26.3",
47+
"@babel/preset-typescript": "^7.26.0",
4548
"@backstage/cli": "^0.29.0",
4649
"@backstage/e2e-test-utils": "^0.1.1",
4750
"@playwright/test": "^1.32.3",
4851
"@spotify/prettier-config": "^12.0.0",
52+
"@testing-library/react": "^16.2.0",
53+
"@types/babel__core": "^7",
54+
"@types/babel__preset-env": "^7",
55+
"babel-jest": "^29.7.0",
4956
"canvas": "^2.11.2",
5057
"concurrently": "^8.0.0",
5158
"cross-env": "^7.0.3",
59+
"jest": "^29.7.0",
5260
"jest-canvas-mock": "^2.5.2",
5361
"jsdom": "^24.0.0",
5462
"lerna": "^7.3.0",
5563
"node-gyp": "^10.0.1",
5664
"prettier": "^2.3.2",
65+
"ts-jest": "^29.2.5",
66+
"ts-node": "^10.9.2",
5767
"typescript": "~5.2.0"
5868
},
5969
"resolutions": {

packages/app/src/App.test.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import React from 'react';
2+
import { render, waitFor } from '@testing-library/react';
3+
import App from './App';
4+
5+
describe('App', () => {
6+
it('should render', async () => {
7+
process.env = {
8+
NODE_ENV: 'test',
9+
APP_CONFIG: [
10+
{
11+
data: {
12+
app: { title: 'Test' },
13+
backend: { baseUrl: 'http://localhost:7007' },
14+
techdocs: {
15+
storageUrl: 'http://localhost:7007/api/techdocs/static/docs',
16+
},
17+
},
18+
context: 'test',
19+
},
20+
] as any,
21+
};
22+
23+
const rendered = render(<App />);
24+
25+
await waitFor(() => {
26+
expect(rendered.baseElement).toBeInTheDocument();
27+
});
28+
});
29+
});

0 commit comments

Comments
 (0)