fix: natively implement LoginItems methods (#15128)
* fix: natively implement LoginItems methods * fix flaky spec on MAS builds
This commit is contained in:
parent
9bb3701f7e
commit
f6b7f547bb
2 changed files with 90 additions and 23 deletions
|
@ -455,31 +455,13 @@ describe('app module', () => {
|
|||
app.setLoginItemSettings({openAtLogin: false, path: updateExe, args: processStartArgs})
|
||||
})
|
||||
|
||||
it('returns the login item status of the app', done => {
|
||||
app.setLoginItemSettings({openAtLogin: true})
|
||||
expect(app.getLoginItemSettings()).to.deep.equal({
|
||||
openAtLogin: true,
|
||||
openAsHidden: false,
|
||||
wasOpenedAtLogin: false,
|
||||
wasOpenedAsHidden: false,
|
||||
restoreState: false
|
||||
})
|
||||
|
||||
app.setLoginItemSettings({openAtLogin: true, openAsHidden: true})
|
||||
expect(app.getLoginItemSettings()).to.deep.equal({
|
||||
openAtLogin: true,
|
||||
openAsHidden: process.platform === 'darwin' && !process.mas, // Only available on macOS
|
||||
wasOpenedAtLogin: false,
|
||||
wasOpenedAsHidden: false,
|
||||
restoreState: false
|
||||
})
|
||||
|
||||
app.setLoginItemSettings({})
|
||||
it('sets and returns the app as a login item', done => {
|
||||
app.setLoginItemSettings({ openAtLogin: true })
|
||||
// Wait because login item settings are not applied immediately in MAS build
|
||||
const delay = process.mas ? 100 : 0
|
||||
const delay = process.mas ? 150 : 0
|
||||
setTimeout(() => {
|
||||
expect(app.getLoginItemSettings()).to.deep.equal({
|
||||
openAtLogin: false,
|
||||
openAtLogin: true,
|
||||
openAsHidden: false,
|
||||
wasOpenedAtLogin: false,
|
||||
wasOpenedAsHidden: false,
|
||||
|
@ -489,6 +471,32 @@ describe('app module', () => {
|
|||
}, delay)
|
||||
})
|
||||
|
||||
it('adds a login item that loads in hidden mode', () => {
|
||||
app.setLoginItemSettings({ openAtLogin: true, openAsHidden: true })
|
||||
expect(app.getLoginItemSettings()).to.deep.equal({
|
||||
openAtLogin: true,
|
||||
openAsHidden: process.platform === 'darwin' && !process.mas, // Only available on macOS
|
||||
wasOpenedAtLogin: false,
|
||||
wasOpenedAsHidden: false,
|
||||
restoreState: false
|
||||
})
|
||||
})
|
||||
|
||||
it('correctly sets and unsets the LoginItem as hidden', function () {
|
||||
if (process.platform !== 'darwin' || process.mas) this.skip()
|
||||
|
||||
expect(app.getLoginItemSettings().openAtLogin).to.be.false()
|
||||
expect(app.getLoginItemSettings().openAsHidden).to.be.false()
|
||||
|
||||
app.setLoginItemSettings({ openAtLogin: true, openAsHidden: true })
|
||||
expect(app.getLoginItemSettings().openAtLogin).to.be.true()
|
||||
expect(app.getLoginItemSettings().openAsHidden).to.be.true()
|
||||
|
||||
app.setLoginItemSettings({ openAtLogin: true, openAsHidden: false })
|
||||
expect(app.getLoginItemSettings().openAtLogin).to.be.true()
|
||||
expect(app.getLoginItemSettings().openAsHidden).to.be.false()
|
||||
})
|
||||
|
||||
it('allows you to pass a custom executable and arguments', function () {
|
||||
if (process.platform !== 'win32') {
|
||||
// FIXME(alexeykuzmin): Skip the test.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue