Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

karma-electron-launcher

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

karma-electron-launcher

A Karma Plugin. Launcher for github electron shell.

  • 0.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
762
increased by8.39%
Maintainers
1
Weekly downloads
 
Created
Source

karma-electron-launcher

Launcher for electron.


Karma launcher for GitHub Electron inspired by Karma Nodewebkit Launcher.


Installation

The easiest way is to keep karma-electron-launcher as a devDependency in your package.json.

For electron<=0.34.3, use karma-electron-launcher@~0.0.5.

{
  "devDependencies": {
    "karma": "~0.10",
    "karma-electron-launcher": "~0.3.0"
  }
}

You can do it on the command line by:

npm install karma-electron-launcher --save-dev

Configuration

// karma.conf.js
module.exports = function(config) {
  config.set({
    browsers: ['Electron']
  });
};

You can pass list of browsers as a CLI argument too:

karma start --browsers Electron

Locally-installed Node modules

If you're using locally-installed Node modules via require in your code in the node_modules directory, you should be able to just require them, and they should be found by the testing environment.

Configuring the Electron BrowserWindow

Options passed to the new BrowserWindow() constructor can be defined by adding an electronOpts object to your karma config. Eg.

// karma.conf.js
module.exports = function(config) {
  config.set({
    browsers: ['Electron'],
    electronOpts: {
      title: 'my window title',
      // ...
    }
  });
};

Available options are specified in the Electron docs. By default, only the window dimensions (400x300) are set.

Application seeds

If you are looking for an application seed to start from you can check this one out: Karma Electron Launcher Simple Seed

Pass command line switches through to Chromium

If you need to pass command line switches through to Chromium then you can use the commandLineSwitches property of electronOpts. Define your switch as an array if it also accepts arguments. Supported switches are listed in the Electron docs.

// karma.conf.js
module.exports = function(config) {
  config.set({
    browsers: ['Electron'],
    electronOpts: {
      commandLineSwitches: [
        'disable-http-cache',
        'disable-http2',
        ['remote-debugging-port', '8315'],
        ['host-rules', 'MAP * 127.0.0.1'],
        ['js-flags', '--harmony_proxies --harmony_collections'],
      ],
    },
  });
};

Switches that are supported by Chromium but not specified in the Electron docs currently work too but this is an undocumented feature and may unexpectedly break:

// karma.conf.js
module.exports = function(config) {
  config.set({
    browsers: ['Electron'],
    electronOpts: {
      commandLineSwitches: [
        '--use-fake-ui-for-media-stream',
        '--use-fake-device-for-media-stream',
      ],
    },
  });
};

Configuring custom launchers

If you need to configure custom launchers differently to each other, then define electronOpts within the custom launcher config. This will be merged with electronOpts in the parent config object and override any properties already set. Custom launchers also allow you to provide additional flags to the electron executable.

// karma.conf.js
module.exports = function(config) {
  config.set({
    browsers: ['Electron', 'MyFirstLauncher', 'MySecondLauncher'],
    electronOpts: {
      title: 'default title',
    },
    customLaunchers: {
      MyFirstLauncher: {
        base: 'Electron',
      },
      MySecondLauncher: {
        base: 'Electron',
        electronOpts: {
          title: 'my custom title',
        },
        flags: ['--no-sandbox'],
      },
    },
  });
};

In this example the Electron and MyFirstLauncher launchers will have the title default title whereas MySecondLauncher will have the title my custom title.

Keywords

FAQs

Package last updated on 23 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc