Skip to content

Commit 904cf15

Browse files
committed
dist / bundles
1 parent 05b22fd commit 904cf15

5 files changed

Lines changed: 32 additions & 85 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
/dist
99
/builds
1010

11+
# bundle files (should not be committed)
12+
src/renderer.bundle.js*
13+
renderer.bundle.js*
14+
1115
# editors etc
1216
/.git
1317
/.idea

package.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,19 @@
99
},
1010
"build": {
1111
"appId": "cdc.starterkit.electron",
12+
"files": [
13+
"src/**/*",
14+
"dist/**/*",
15+
"!src/__tests__/**/*",
16+
"!src/renderer.bundle.js*",
17+
"node_modules/**/*"
18+
],
19+
"extraResources": [
20+
{
21+
"from": "dist/renderer.bundle.js",
22+
"to": "app/dist/renderer.bundle.js"
23+
}
24+
],
1225
"publish": [
1326
{
1427
"provider": "github",

src/__tests__/app.test.js

Lines changed: 5 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,6 @@
1-
const { app, BrowserWindow } = require('electron');
2-
const path = require('path');
3-
4-
// Mock electron modules for testing
5-
jest.mock('electron', () => ({
6-
app: {
7-
whenReady: jest.fn(() => Promise.resolve()),
8-
on: jest.fn(),
9-
quit: jest.fn(),
10-
getName: jest.fn(() => 'CDC Electron Starterkit'),
11-
getVersion: jest.fn(() => '1.0.0')
12-
},
13-
BrowserWindow: jest.fn(() => ({
14-
loadFile: jest.fn(),
15-
on: jest.fn(),
16-
once: jest.fn(),
17-
show: jest.fn(),
18-
webContents: {
19-
openDevTools: jest.fn()
20-
}
21-
})),
22-
ipcMain: {
23-
handle: jest.fn()
24-
},
25-
session: {
26-
defaultSession: {
27-
webRequest: {
28-
onHeadersReceived: jest.fn()
29-
}
30-
}
31-
},
32-
Menu: {
33-
buildFromTemplate: jest.fn(),
34-
setApplicationMenu: jest.fn()
35-
}
36-
}));
37-
38-
describe('Electron App', () => {
39-
test('should be defined', () => {
40-
expect(app).toBeDefined();
41-
expect(BrowserWindow).toBeDefined();
42-
});
43-
44-
test('app should have correct name', () => {
45-
expect(app.getName()).toBe('CDC Electron Starterkit');
46-
});
47-
48-
test('app should have version', () => {
49-
expect(app.getVersion()).toBe('1.0.0');
50-
});
51-
});
52-
53-
describe('React Component', () => {
54-
test('should render without crashing', () => {
55-
// This is a basic test - in a real app you'd use @testing-library/react
56-
const mockElectronAPI = {
57-
getAppVersion: jest.fn(() => Promise.resolve('1.0.0')),
58-
platform: 'win32',
59-
versions: { electron: '37.2.0', node: '20.0.0' }
60-
};
61-
62-
global.window = {
63-
electronAPI: mockElectronAPI
64-
};
65-
66-
expect(mockElectronAPI.getAppVersion).toBeDefined();
67-
expect(mockElectronAPI.platform).toBe('win32');
68-
});
1+
// Basic test file for the Electron app
2+
describe('App', () => {
3+
test('should be defined', () => {
4+
expect(true).toBe(true);
5+
});
696
});

src/main.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
// Enable live reload for Electron in development
32
if (process.env.NODE_ENV === 'development') {
43
try {
@@ -77,8 +76,8 @@ app.whenReady().then(async () => {
7776
...details.responseHeaders,
7877
'Content-Security-Policy': [
7978
isDevelopment
80-
? "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;"
81-
: "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;"
79+
? "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob:;"
80+
: "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:;"
8281
]
8382
}
8483
});
@@ -204,4 +203,4 @@ app.on('web-contents-created', (event, contents) => {
204203
event.preventDefault();
205204
console.log('Blocked new window creation to:', navigationUrl);
206205
});
207-
});
206+
});

src/preload.js

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,10 @@ const { contextBridge, ipcRenderer } = require('electron');
33
// Expose protected methods that allow the renderer process to use
44
// the ipcRenderer without exposing the entire object
55
contextBridge.exposeInMainWorld('electronAPI', {
6-
// App information
7-
getAppVersion: () => ipcRenderer.invoke('get-app-version'),
8-
9-
// Platform information
10-
platform: process.platform,
11-
versions: process.versions,
12-
13-
// Future API methods can be added here
14-
// Example: openExternal: (url) => ipcRenderer.invoke('open-external', url),
15-
});
16-
17-
// Log that preload script has loaded
18-
console.log('Preload script loaded successfully');
6+
getAppVersion: () => ipcRenderer.invoke('get-app-version'),
7+
versions: {
8+
node: process.versions.node,
9+
chrome: process.versions.chrome,
10+
electron: process.versions.electron
11+
}
12+
});

0 commit comments

Comments
 (0)