123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- import { expect } from 'chai';
- import { Notification } from 'electron/main';
- import { emittedOnce } from './events-helpers';
- import { ifit } from './spec-helpers';
- describe('Notification module', () => {
- it('is supported', () => {
- expect(Notification.isSupported()).to.be.a('boolean');
- });
- it('inits, gets and sets basic string properties correctly', () => {
- const n = new Notification({
- title: 'title',
- subtitle: 'subtitle',
- body: 'body',
- replyPlaceholder: 'replyPlaceholder',
- sound: 'sound',
- closeButtonText: 'closeButtonText'
- });
- expect(n.title).to.equal('title');
- n.title = 'title1';
- expect(n.title).to.equal('title1');
- expect(n.subtitle).equal('subtitle');
- n.subtitle = 'subtitle1';
- expect(n.subtitle).equal('subtitle1');
- expect(n.body).to.equal('body');
- n.body = 'body1';
- expect(n.body).to.equal('body1');
- expect(n.replyPlaceholder).to.equal('replyPlaceholder');
- n.replyPlaceholder = 'replyPlaceholder1';
- expect(n.replyPlaceholder).to.equal('replyPlaceholder1');
- expect(n.sound).to.equal('sound');
- n.sound = 'sound1';
- expect(n.sound).to.equal('sound1');
- expect(n.closeButtonText).to.equal('closeButtonText');
- n.closeButtonText = 'closeButtonText1';
- expect(n.closeButtonText).to.equal('closeButtonText1');
- });
- it('inits, gets and sets basic boolean properties correctly', () => {
- const n = new Notification({
- title: 'title',
- body: 'body',
- silent: true,
- hasReply: true
- });
- expect(n.silent).to.be.true('silent');
- n.silent = false;
- expect(n.silent).to.be.false('silent');
- expect(n.hasReply).to.be.true('has reply');
- n.hasReply = false;
- expect(n.hasReply).to.be.false('has reply');
- });
- it('inits, gets and sets actions correctly', () => {
- const n = new Notification({
- title: 'title',
- body: 'body',
- actions: [
- {
- type: 'button',
- text: '1'
- }, {
- type: 'button',
- text: '2'
- }
- ]
- });
- expect(n.actions.length).to.equal(2);
- expect(n.actions[0].type).to.equal('button');
- expect(n.actions[0].text).to.equal('1');
- expect(n.actions[1].type).to.equal('button');
- expect(n.actions[1].text).to.equal('2');
- n.actions = [
- {
- type: 'button',
- text: '3'
- }, {
- type: 'button',
- text: '4'
- }
- ];
- expect(n.actions.length).to.equal(2);
- expect(n.actions[0].type).to.equal('button');
- expect(n.actions[0].text).to.equal('3');
- expect(n.actions[1].type).to.equal('button');
- expect(n.actions[1].text).to.equal('4');
- });
- it('can be shown and closed', () => {
- const n = new Notification({
- title: 'test notification',
- body: 'test body',
- silent: true
- });
- n.show();
- n.close();
- });
- ifit(process.platform === 'darwin')('emits show and close events', async () => {
- const n = new Notification({
- title: 'test notification',
- body: 'test body',
- silent: true
- });
- {
- const e = emittedOnce(n, 'show');
- n.show();
- await e;
- }
- {
- const e = emittedOnce(n, 'close');
- n.close();
- await e;
- }
- });
- // TODO(sethlu): Find way to test init with notification icon?
- });
|