diff --git a/electron-builder.json b/electron-builder.json index 3cfaefd57..22af70f51 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -24,6 +24,8 @@ "**/*.dylib" ], "extraMetadata": { + "name": "iptvnator", + "productName": "IPTVnator", "main": "electron-backend/main.js" }, "extraResources": ["dist/apps/electron-backend/workers"], @@ -43,6 +45,12 @@ }, "linux": { "category": "Video", + "executableName": "iptvnator", + "desktop": { + "entry": { + "StartupWMClass": "iptvnator" + } + }, "target": [ { "target": "AppImage", diff --git a/tools/packaging/electron-package-identity.test.mjs b/tools/packaging/electron-package-identity.test.mjs new file mode 100644 index 000000000..2cc22b5df --- /dev/null +++ b/tools/packaging/electron-package-identity.test.mjs @@ -0,0 +1,26 @@ +import assert from 'node:assert/strict'; +import fs from 'node:fs'; +import test from 'node:test'; + +const electronBuilderConfig = JSON.parse( + fs.readFileSync('electron-builder.json', 'utf8') +); + +test('Linux package identity does not expose the internal Electron backend project name', () => { + assert.equal(electronBuilderConfig.productName, 'IPTVnator'); + assert.equal(electronBuilderConfig.extraMetadata?.name, 'iptvnator'); + assert.equal(electronBuilderConfig.extraMetadata?.productName, 'IPTVnator'); + assert.equal(electronBuilderConfig.linux?.executableName, 'iptvnator'); + assert.equal( + electronBuilderConfig.linux?.desktop?.entry?.StartupWMClass, + 'iptvnator' + ); + assert.notEqual( + electronBuilderConfig.extraMetadata?.name, + 'electron-backend' + ); + assert.notEqual( + electronBuilderConfig.linux?.executableName, + 'electron-backend' + ); +});