Skip to content

Commit 4d67a7a

Browse files
authored
test: backport test improvements from next (#4106)
* test(slow): test api against `file:` protocol fixtures (#4087) * test(slow): simplify bootstrapping tests (#4096) * test: use verdaccio for e2e init testing (#4100) * zzz * gg
1 parent 55f6eed commit 4d67a7a

File tree

23 files changed

+2725
-920
lines changed

23 files changed

+2725
-920
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ packages/*/*/index.ts
77
packages/**/bad.js
88
tmpl
99
packages/api/core/helper/dynamic-import.js
10+
packages/api/core/spec/fixture/api-tester/

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ jobs:
208208
run: |
209209
mkdir -p ./reports/out
210210
yarn test:slow --reporter=default --reporter=junit --outputFile="./reports/out/test_output.xml"
211+
yarn test:verdaccio --reporter=default --reporter=junit --outputFile="./reports/out/test_output_verdaccio.xml"
211212
212213
required-ci:
213214
needs:

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ packages/**/.swc
2525
packages/api/core/spec/fixture/app-with-scoped-name/out/make
2626
packages/plugin/webpack/spec/fixtures/apps/native-modules/package-lock.json
2727
packages/plugin/fuses/spec/fixture/app
28+
!packages/plugin/fuses/spec/fixture/app/package.json.tmpl
2829
.links
2930
reports
3031
packages/**/typedoc.json
@@ -42,3 +43,6 @@ packages/**/typedoc.json
4243
.nx/workspace-data
4344
.cursor/rules/nx-rules.mdc
4445
.github/instructions/nx.instructions.md
46+
47+
tools/verdaccio/storage
48+
tools/verdaccio/htpasswd

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ packages/*/*/index.ts
99
packages/*/*/README.md
1010
packages/*/*/tsconfig.json
1111
packages/*/*/typedoc.json
12+
packages/api/core/spec/fixture/api-tester/package.json
1213
packages/api/core/spec/fixture/bad_external_forge_config/bad.js
1314
packages/plugin/webpack/spec/**/.webpack
1415
.links

package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
"lint": "npm run lint:js && npm run lint:markdown && npm run lint:markdown-js && npm run lint:markdown-links",
2020
"lint:fix": "prettier --write . --experimental-cli && eslint --fix . --cache",
2121
"prepack": "yarn build",
22-
"test": "xvfb-maybe vitest run --project fast --project slow",
22+
"test": "xvfb-maybe vitest run --project fast --project slow --project slow-verdaccio",
2323
"test:fast": "xvfb-maybe vitest run --project fast",
2424
"test:slow": "xvfb-maybe vitest run --project slow",
25+
"test:verdaccio": "ts-node tools/verdaccio/spawn-verdaccio.ts xvfb-maybe vitest run --project slow-verdaccio",
2526
"test:clear": "ts-node tools/test-clear",
2627
"update:lockfile-fixtures": "ts-node tools/regenerate-lockfile-fixtures.ts",
2728
"postinstall": "husky install && node -e \"try { fs.rmSync('node_modules/.bin/*.ps1', { recursive: true, force: true }) } catch (e) {}\" && ts-node ./tools/gen-tsconfigs.ts && ts-node ./tools/gen-ts-glue.ts"
@@ -101,6 +102,8 @@
101102
"@types/which": "^2.0.0",
102103
"@typescript-eslint/eslint-plugin": "^8.0.0",
103104
"@typescript-eslint/parser": "^8.0.0",
105+
"@yarnpkg/types": "^4.0.1",
106+
"electron": "^39.2.6",
104107
"electron-installer-common": "^0.10.2",
105108
"eslint": "^8.56.0",
106109
"eslint-config-prettier": "^10.0.1",
@@ -116,10 +119,12 @@
116119
"minimist": "^1.2.6",
117120
"msw": "^2.7.0",
118121
"prettier": "^3.6.2",
122+
"ref-napi": "^3.0.3",
119123
"syncpack": "^11.2.1",
120124
"ts-node": "^10.0.0",
121125
"typedoc": "0.25.13",
122126
"typescript": "~5.4.5",
127+
"verdaccio": "^6.2.4",
123128
"vitest": "^3.1.3",
124129
"xvfb-maybe": "^0.2.1",
125130
"yaml-hook": "^1.0.0"
@@ -154,6 +159,9 @@
154159
"@bitdisaster/exe-icon-extractor": {
155160
"built": true
156161
},
162+
"electron": {
163+
"built": true
164+
},
157165
"electron-winstaller": {
158166
"built": true
159167
},
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
module.exports = {
2+
packagerConfig: {
3+
asar: true,
4+
},
5+
rebuildConfig: {},
6+
makers: [
7+
{
8+
name: '@electron-forge/maker-zip',
9+
platforms: ['darwin', 'linux', 'win32'],
10+
},
11+
],
12+
plugins: [
13+
{
14+
name: '@electron-forge/plugin-auto-unpack-natives',
15+
config: {},
16+
},
17+
],
18+
};
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"name": "api-tester",
3+
"productName": "api-tester",
4+
"version": "1.0.0",
5+
"description": "Test Electron application for Forge API tests",
6+
"main": "src/index.js",
7+
"scripts": {
8+
"start": "electron-forge start",
9+
"package": "electron-forge package",
10+
"make": "electron-forge make"
11+
},
12+
"keywords": [],
13+
"author": "Test Author",
14+
"license": "MIT",
15+
"homepage": "http://www.electronjs.org/",
16+
"devDependencies": {
17+
"@electron-forge/cli": "file:../../../../../api/cli",
18+
"@electron-forge/core": "file:../../../../../api/core",
19+
"@electron-forge/core-utils": "file:../../../../../utils/core-utils",
20+
"@electron-forge/maker-appx": "file:../../../../../maker/appx",
21+
"@electron-forge/maker-base": "file:../../../../../maker/base",
22+
"@electron-forge/maker-deb": "file:../../../../../maker/deb",
23+
"@electron-forge/maker-dmg": "file:../../../../../maker/dmg",
24+
"@electron-forge/maker-flatpak": "file:../../../../../maker/flatpak",
25+
"@electron-forge/maker-msix": "file:../../../../../maker/msix",
26+
"@electron-forge/maker-pkg": "file:../../../../../maker/pkg",
27+
"@electron-forge/maker-rpm": "file:../../../../../maker/rpm",
28+
"@electron-forge/maker-snap": "file:../../../../../maker/snap",
29+
"@electron-forge/maker-squirrel": "file:../../../../../maker/squirrel",
30+
"@electron-forge/maker-wix": "file:../../../../../maker/wix",
31+
"@electron-forge/maker-zip": "file:../../../../../maker/zip",
32+
"@electron-forge/plugin-auto-unpack-natives": "file:../../../../../plugin/auto-unpack-natives",
33+
"@electron-forge/plugin-base": "file:../../../../../plugin/base",
34+
"@electron-forge/plugin-fuses": "file:../../../../../plugin/fuses",
35+
"@electron-forge/shared-types": "file:../../../../../utils/types",
36+
"@electron/fuses": "file:../../../../../../node_modules/@electron/fuses",
37+
"electron": "file:../../../../../../node_modules/electron"
38+
},
39+
"config": {
40+
"forge": "./forge.config.js"
41+
}
42+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const { app, BrowserWindow } = require('electron');
2+
3+
const createWindow = () => {
4+
const mainWindow = new BrowserWindow();
5+
6+
// and load the index.html of the app.
7+
mainWindow.loadURL('https://electronjs.org');
8+
};
9+
10+
app.whenReady().then(() => {
11+
createWindow();
12+
13+
app.on('activate', () => {
14+
if (BrowserWindow.getAllWindows().length === 0) {
15+
createWindow();
16+
}
17+
});
18+
});
19+
20+
app.on('window-all-closed', () => {
21+
if (process.platform !== 'darwin') {
22+
app.quit();
23+
}
24+
});

packages/api/core/spec/fixture/custom_init/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ const fs = require('fs-extra');
55

66
module.exports = {
77
requiredForgeVersion: '>= 6.0.0-beta.1',
8-
dependencies: [...baseTemplate.dependencies, 'debug'],
9-
devDependencies: [...baseTemplate.devDependencies, 'lodash'],
8+
dependencies: [...baseTemplate.dependencies, 'semver@7.7.3'],
9+
devDependencies: [...baseTemplate.devDependencies, '@types/semver@7.7.1'],
1010
initializeTemplate: async (directory) => {
1111
const tasks = await baseTemplate.initializeTemplate(directory, {});
1212
return [

0 commit comments

Comments
 (0)