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

floss

Package Overview
Dependencies
Maintainers
11
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

floss

Unit-testing for those hard to reach places

  • 5.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
11
Created
Source

Floss

Unit-testing for those hard to reach places.

Node.js CI npm version

Uses Electron to provide a Mocha unit-testing environment which can be run headlessly or to debugged with DevTools. This was largely inspired by the electron-mocha and mocha-electron projects but didn't quite have the debugging features needed to develop tests.

Installation

Install globally:

npm install -g floss electron

Install locally within a project:

npm install floss electron --save-dev

Debug Mode

Open tests in an Electron window where test can can be debugged with debugger and dev tools.

await floss({
    path: 'test/*.js',
    debug: true
});

Mocha Reporter

The reporter and reporterOptions are pass-through options for Mocha to specify a different reporter when running Floss in non-debug mode.

await floss({
    path: 'test/*.js',
    reporter: 'xunit',
    reporterOptions: {
    	filename: 'report.xml'
    }
});

Custom Options

Additional properties can be passed to the test code by adding more values to the run options.

await floss({
    path: 'test/*.js',
    customUrl: 'http://localhost:8080' // <- custom
});

The test code and use the global options property to have access to the run options.

console.log(options.customUrl); // logs: http://localhost:8080

Electron Arguments

Commandline arguments can be passed to Electron directly by using args. In the example below, you may wan to disable Electron's user-gesture policy if you are testing HTML video or audio playback.

await floss({
    path: 'test/index.js',
    args: ['--autoplay-policy=no-user-gesture-required']
});

Command Line Usage

Arguments

  • --path or -p (String) Path to the file to test
  • --debug or -d (Boolean) Enable to run in headful mode, default false.
  • --quiet or -q (Boolean) Prevent console[log/info/error/warn/dir] messages from appearing in stdout.
  • --electron or -e (String) Path to the electron to use.
  • --reporter or -R (String) Mocha reporter type, default spec.
  • --reporterOptions or -O (String) Mocha reporter options.
  • --require or -r (String) Module to require (e.g., ts-node/register).
  • -- [args] Additional arguments can be passed to Electron after --

Usage

Command Line usage when installed globally:

floss --path "test/*.js"

Or installed locally:

node node_modules/.bin/floss --path "test/*.js"

Alernatively, within the package.json's' scripts:

{
    "scripts": {
        "test": "floss --path \"test/*.js\""
    }
}

Debug Mode

Open tests in an Electron window where test can can be debugged with debugger and dev tools.

floss --path "test/*.js" --debug

Using TypeScript

Support can easily be added for writing tests in TypeScript using ts-node.

floss --path "test/*.ts" --require ts-node/register

Istanbul Code Coverage

Floss supports nyc. To use it, just use floss as you would mocha:

nyc floss --path "test/*.js"

Mocha Reporter

Can use the same reporter options as the API mentioned above. The reporterOptions are expressed as a querystring, for instance varname=foo&another=bar.

floss --path "test/*.js" \
    --reporter=xunit \
    --reporterOptions output=report.xml

Electron Arguments

Supports passing additional arguments to Electron after --.

floss --path "test/*.js" -- --autoplay-policy=no-user-gesture-required

Custom Electron Version

Some application may require a specific version of Electron. Floss uses Electron 10.0.0+, but you can specific the path to your own version. The custom version can be used either through the commandline argument --electron, by setting the Node environmental variable ELECTRON_PATH or by setting the run option electron.

floss --path "test/.js" \
	--electron /usr/local/bin/electron
ELECTRON_PATH=/usr/local/bin/electron floss --path "test/*.js"

GitHub Actions Integration

name: Node.js CI
on:
  push:
    branches: [ '**' ]
    tags: [ '**' ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
      with:
        node-version: '12'
    - run: npm install
    - uses: GabrielBB/xvfb-action@v1.0
      with:
        run: npm test

Keywords

FAQs

Package last updated on 28 Jun 2021

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