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

webpack-jsdom-tape-plugin

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webpack-jsdom-tape-plugin

a webpack plugin to run tape tests over jsdom

  • 1.4.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

WebpackJsdomTapePlugin

install

$ npm install --save-dev webpack-jsdom-tape-plugin

import

import WebpackJsdomTapePlugin from "webpack-jsdom-tape-plugin"

api

func WebpackJsdomTapePlugin({ string: url, string: entry, bool: exit = true, bool: errorsOnly = false})

creates a test runner for when the given entry, at the given url.

when the test is done, process exits with 0 if passed, and 1 if any errors occured. exit option allow you to change this behavior of this plugin. Note that using exit: false might introduce a memory leak since jsdom might not clean everything properly.

errorsOnly option allow to only show tests on error allowing clean ouput.

test example

// tape is included as a global
tape("test name", (test) => {
  test.equal(1, 1, "ok")
  test.end()
})

integration example

You will need a webpack entry that require all tests files and an html file that will include this entry

src/tests.js

// where you might need to use webpack file-loader for the following html file
import "./tests.html"

// you may need to include your polyfill here
// eg: import "babel/polyfills"

var context = require.context(
  // place where your modules are
  "../web_modules",
  true,
  // you pattern to glob the test files
  /__tests__\/.*\.js$/
)

context.keys().forEach(context)

src/tests.html

<!doctype html>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Tests</title>
<h1>TAP</h1>
<pre id="test-Pre"></pre>
<script>
  var log = console.log
  var target = document.getElementById("test-Pre")
  window.console.log = function(message) {
    target.appendChild(document.createTextNode(message + "\n"))
    log.apply(console, arguments)
  }
</script>
<script src="./tests.js"></script>

es6 webpack.config.js

import WebpackJsdomTapePlugin from "webpack-jsdom-tape-plugin"
//...
export default {
  // ...
  plugins: [
    WebpackJsdomTapePlugin({
      url: "http://localhost:8080/",
      entry: ["tests.js"],
      // NOTE HERE THAT YOU WILL NEED AN ENTRY THAT SHOULD BE "tests"
      // to be sure a "tests.js" is in the assets list
      exit: false,
      errorsOnly: false,
    })
  ]
}

Keywords

FAQs

Package last updated on 16 Mar 2016

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