Skip to content

Provide manipulation of menus in your spectron's specs.

License

Notifications You must be signed in to change notification settings

slashwhy/spectron-menu-addon

 
 

Repository files navigation

SpectronMenuAddon

Provide functionality to click menu items and get their status within spectron tests.

Installation

npm install --save-dev spectron-menu-addon

Usage

import * as electron from 'electron'
import * as path from 'path'
import menuAddon from 'spectron-menu-addon'

const app = menuAddon.createApplication({ args: [path.join(__dirname, '..')], path: electron.toString() })

menuAddon.clickMenu('Config'); // 'Config' Menu click
menuAddon.clickMenu('File', 'Save'); // File->Save MenuItem click
await menuAddon.isItemEnabled('File', 'Reset')) // Verify if MenuItem File->Reset is enabled

Example

https://github.com/SALT-AND-PEPPER/spectron-menu-addon/tree/master/example

API

menuAddon.createApplication(options: AppConstructorOptions): Application

Creates application to test

menuAddon.clickMenu(...labels: string[])

Find menu by labels and click. If the target is nested, it can be specified with variable length arguments.

ex) File -> Save:

menuAddon.clickMenu('File', 'Save')

menuAddon.getMenuItem(...labels: string[]): Promise

Find menu item by labels and return that with following properties:

{
  checked: boolean
  enabled: boolean
  label: string
  visible: boolean
}

If the target is not found, label is returned as an empty string, all other properties are undefined.

If the target is nested, it can be specified with variable length arguments.

ex) File -> Open:

await menuAddon.getMenuItem('File', 'Open')

License

MIT

About

Provide manipulation of menus in your spectron's specs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 78.6%
  • JavaScript 17.0%
  • HTML 4.4%