nightmare-jasmine

Jasmine wrapper for Nightmare

Usage no npm install needed!

<script type="module">
  import nightmareJasmine from 'https://cdn.skypack.dev/nightmare-jasmine';
</script>

README

nightmare-jasmine Build Status npm apache2

Jasmine wrapper for Nightmare

Installation

npm install --save-dev nightmare-jasmine

Usage

import { Context as BaseContext, run } from 'nightmare-jasmine'

run({
  params: {
    username: 'foo'
  },
  specFiles: [
    './hooks/beforeAll.js',
    './hooks/beforeEach.js',
    './specs/*.js'
  ]
})

API

run(options: Options)
  .then(() => console.log('Success!'))
  .catch(e => console.error('Error!', e))

Options:

Name Type Required? Description
baseDir string No Directory that spec files should be resolved relative to
isDebug boolean No Show browser?
params Object No Additional params to pass to tests
specFiles string[] Yes Glob array of spec files

Example spec

describe('nightmare-jasmine', () => {
  it('should route to #/foo', async function(this: Context) {
    const url = await this.nightmare.wait('#myElement').evaluate(() => window.location.href)
    expect(url).toBe('http://localhost:4000/#/foo')
  })
})

Usage notes

  • If the process exits due to a Jasmine error, it will stay open for up to 30 secs (or whatever nightmare.options.waitTimeout is set to). This is because nightmare .wait() uses timeouts, which are not cleared when .halt() is called. (see https://github.com/segmentio/nightmare/issues/863)