1. poi-preset-karma
Use Karma to run unit tests for your Poi project.
poi-preset-karma
Package: poi-preset-karma
Last modified: Fri, 24 Jun 2022 05:59:48 GMT
Version: 9.2.4
Downloads: 18

Install

npm install poi-preset-karma
yarn add poi-preset-karma

poi-preset-karma

Use Karma to run unit tests for your Poi project.

Install

 yarn add poi poi-preset-karma --dev

Notes: You have to install poi locally in your project.

Usage

 // poi.config.js
module.exports = {
  presets: [
    require('poi-preset-karma')({
      port: 5001, // default
      files: ['test/unit/*.test.js'] // default
    })
  ]
}

Then run poi test, this preset will only be activated in test mode.

Or run poi test --watch to run Karma in watch mode.

Or run poi test --coverage to get code coverage as well.

Options

port

Type: number

Default: 5001

files

Type: Array string

Default: ['test/unit/**/*.test.js']

frameworks

Type: Array string

Default: ['mocha']

reporters

Type: Array string

Default: ['mocha']

If you enable code coverage the coverage reporter will automatically be added as well.

browsers

Type: Array string

Default: ['Chrome']

You can use headless option to switch it to ChromeHeadless which is only available when you have Chrome>=59 installed.

You can also directly set browsers option to override it.

headless

Type: boolean

Default: false

Switch browsers to ChromeHeadless.

watch

Type: boolean

Default: false

Run karma in watch mode.

coverage

Type: boolean

Default: false

Generate code coverage.

extendWebpack

Type: function

Default: undefined

Extend webpack config using webpack-chain:

 require('poi-preset-karma')({
  extendWebpack(config) {
    config.some.action()
  }
})

Advanced

This preset can also directly read Karma config from karma property in poi.config.js, and it will be merged with default karma config we use:

 // poi.config.js
module.exports = {
  karma: {
    frameworks: ['mocha', 'chai']
  }
}

We use Object.assign to merge custom karma config with our default one.

karma could also be a function, then we will use its return value as karma config:

 // poi.config.js
module.exports = {
  karma(config) {
    config.reporters = ['nyancat']
    return config
  }
}

TypeScript support

It works with poi-preset-typescript.

You need to install karma-typescript and typescript locally in your project first, and configure poi-preset-typescript:

 // poi.config.js
module.exports = {
  presets: [
    // The order matters!
    require('poi-preset-typescript')(),
    require('poi-preset-karma')()
  ]
}

License

MIT © EGOIST

Dependencies

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code