diff --git a/packages/maker/dmg/package.json b/packages/maker/dmg/package.json index ffd64eca27..45845891b5 100644 --- a/packages/maker/dmg/package.json +++ b/packages/maker/dmg/package.json @@ -23,8 +23,7 @@ }, "dependencies": { "@electron-forge/maker-base": "7.4.0", - "@electron-forge/shared-types": "7.4.0", - "fs-extra": "^10.0.0" + "@electron-forge/shared-types": "7.4.0" }, "optionalDependencies": { "electron-installer-dmg": "^4.0.0" diff --git a/packages/maker/dmg/src/MakerDMG.ts b/packages/maker/dmg/src/MakerDMG.ts index a29ae7984c..937394c599 100644 --- a/packages/maker/dmg/src/MakerDMG.ts +++ b/packages/maker/dmg/src/MakerDMG.ts @@ -2,7 +2,6 @@ import path from 'path'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; -import fs from 'fs-extra'; import { MakerDMGConfig } from './Config'; @@ -18,23 +17,19 @@ export default class MakerDMG extends MakerBase { async make({ dir, makeDir, appName, packageJSON, targetArch }: MakerOptions): Promise { const electronDMG = require('electron-installer-dmg'); - const outPath = path.resolve(makeDir, `${this.config.name || appName}.dmg`); - const forgeDefaultOutPath = path.resolve(makeDir, `${appName}-${packageJSON.version}-${targetArch}.dmg`); + const dmgOutName = this.config.name ?? `${appName}-${packageJSON.version}-${targetArch}`; + const outPath = path.resolve(makeDir, dmgOutName); await this.ensureFile(outPath); const dmgConfig = { overwrite: true, - name: appName, ...this.config, appPath: path.resolve(dir, `${appName}.app`), out: path.dirname(outPath), + name: dmgOutName, + title: this.config.name ?? appName, }; const opts = await electronDMG(dmgConfig); - if (!this.config.name) { - await this.ensureFile(forgeDefaultOutPath); - await fs.rename(outPath, forgeDefaultOutPath); - return [forgeDefaultOutPath]; - } return [opts.dmgPath]; } diff --git a/packages/maker/dmg/test/MakerDMG_spec.ts b/packages/maker/dmg/test/MakerDMG_spec.ts index f3a7447b05..c422ee7a40 100644 --- a/packages/maker/dmg/test/MakerDMG_spec.ts +++ b/packages/maker/dmg/test/MakerDMG_spec.ts @@ -42,9 +42,6 @@ describe('MakerDMG', () => { .load('../src/MakerDMG', { '../../util/ensure-output': { ensureFile: ensureFileStub }, 'electron-installer-dmg': eidStub, - 'fs-extra': { - rename: renameStub, - }, }).default; createMaker = async () => { maker = new MakerDMG(config); @@ -65,35 +62,13 @@ describe('MakerDMG', () => { const opts = eidStub.firstCall.args[0]; expect(opts).to.deep.equal({ overwrite: true, - name: appName, + name: `${appName}-${packageJSON.version}-${targetArch}`, appPath: path.resolve(`${dir}/My Test App.app`), + title: 'My Test App', out: path.resolve(`${dir.substr(0, dir.length - 4)}/make`), }); }); - it('should attempt to rename the DMG file if no custom name is set', async () => { - await (maker.make as MakeFunction)({ - dir, - makeDir, - appName, - targetArch, - packageJSON, - }); - expect(renameStub.callCount).to.equal(1); - expect(renameStub.firstCall.args[1]).to.include(`1.2.3-${targetArch}`); - }); - - it('should rename the DMG file to include the version if no custom name is set', async () => { - await (maker.make as MakeFunction)({ - dir, - makeDir, - appName, - targetArch, - packageJSON, - }); - expect(renameStub.firstCall.args[1]).to.include(`1.2.3-${targetArch}`); - }); - it('should not attempt to rename the DMG file if a custom name is set', async () => { config.name = 'foobar'; await createMaker();