feat: add app.commandLine.hasSwitch() / app.commandLine.getSwitchValue() (#16282)
* feat: add app.commandLine.hasSwitch() / app.commandLine.getSwitchValue() * add more tests * refactor: move appendSwitch / appendArgument to command_line module * replace AppendSwitchASCII with AppendSwitchNative * remove castArgs
This commit is contained in:
parent
5957ede41a
commit
6f117b8e0c
7 changed files with 135 additions and 38 deletions
|
@ -6,6 +6,7 @@ const https = require('https')
|
|||
const net = require('net')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const cp = require('child_process')
|
||||
const { ipcRenderer, remote } = require('electron')
|
||||
const { emittedOnce } = require('./events-helpers')
|
||||
const { closeWindow } = require('./window-helpers')
|
||||
|
@ -1091,4 +1092,73 @@ describe('app module', () => {
|
|||
return expect(app.whenReady()).to.be.eventually.fulfilled
|
||||
})
|
||||
})
|
||||
|
||||
describe('commandLine.hasSwitch', () => {
|
||||
it('returns true when present', () => {
|
||||
app.commandLine.appendSwitch('foobar1')
|
||||
expect(app.commandLine.hasSwitch('foobar1')).to.be.true()
|
||||
})
|
||||
|
||||
it('returns false when not present', () => {
|
||||
expect(app.commandLine.hasSwitch('foobar2')).to.be.false()
|
||||
})
|
||||
})
|
||||
|
||||
describe('commandLine.hasSwitch (existing argv)', () => {
|
||||
it('returns true when present', async () => {
|
||||
const { hasSwitch } = await runCommandLineTestApp('--foobar')
|
||||
expect(hasSwitch).to.be.true()
|
||||
})
|
||||
|
||||
it('returns false when not present', async () => {
|
||||
const { hasSwitch } = await runCommandLineTestApp()
|
||||
expect(hasSwitch).to.be.false()
|
||||
})
|
||||
})
|
||||
|
||||
describe('commandLine.getSwitchValue', () => {
|
||||
it('returns the value when present', () => {
|
||||
app.commandLine.appendSwitch('foobar', 'æøåü')
|
||||
expect(app.commandLine.getSwitchValue('foobar')).to.equal('æøåü')
|
||||
})
|
||||
|
||||
it('returns an empty string when present without value', () => {
|
||||
app.commandLine.appendSwitch('foobar1')
|
||||
expect(app.commandLine.getSwitchValue('foobar1')).to.equal('')
|
||||
})
|
||||
|
||||
it('returns an empty string when not present', () => {
|
||||
expect(app.commandLine.getSwitchValue('foobar2')).to.equal('')
|
||||
})
|
||||
})
|
||||
|
||||
describe('commandLine.getSwitchValue (existing argv)', () => {
|
||||
it('returns the value when present', async () => {
|
||||
const { getSwitchValue } = await runCommandLineTestApp('--foobar=test')
|
||||
expect(getSwitchValue).to.equal('test')
|
||||
})
|
||||
|
||||
it('returns an empty string when present without value', async () => {
|
||||
const { getSwitchValue } = await runCommandLineTestApp('--foobar')
|
||||
expect(getSwitchValue).to.equal('')
|
||||
})
|
||||
|
||||
it('returns an empty string when not present', async () => {
|
||||
const { getSwitchValue } = await runCommandLineTestApp()
|
||||
expect(getSwitchValue).to.equal('')
|
||||
})
|
||||
})
|
||||
|
||||
async function runCommandLineTestApp (...args) {
|
||||
const appPath = path.join(__dirname, 'fixtures', 'api', 'command-line')
|
||||
const electronPath = remote.getGlobal('process').execPath
|
||||
const appProcess = cp.spawn(electronPath, [appPath, ...args])
|
||||
|
||||
let output = ''
|
||||
appProcess.stdout.on('data', (data) => { output += data })
|
||||
|
||||
await emittedOnce(appProcess.stdout, 'end')
|
||||
|
||||
return JSON.parse(output)
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue