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

@tapjs/test

Package Overview
Dependencies
Maintainers
2
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tapjs/test

the pluggable Test class for node-tap

  • 4.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
102K
increased by66.87%
Maintainers
2
Weekly downloads
 
Created
Source

@tapjs/test

The plugin-ified Test class in node-tap.

Class Test

This is the object that's actually provided to your tests. When you do t.pass('this is fine'), this is the t.

It's also the base class of the TAP class which is the default export of the 'tap' module, so anything on Test is also on TAP.

The Test class itself adds only the following methods, but it has the sum of all methods provided by all loaded plugins.

t.applyPlugin(plugin: TapPlugin): Test

This returns a new version of the Test object which has the plugin applied.

Note that it's actually a different object, but anything done to the copy will also affect the base, and it will inherit all properties and methods that the base has, so the new object can be used in place of the original.

For example:

import t from 'tap'

const plugin = t => ({
  hello: () => console.log('hello from ', t.name),
  blowUp: () => t.fail('blowing up'),
})

t.test('apply a plugin', original => {
  const t = original.applyPlugin(plugin)
  console.log(typeof original.hello) // 'undefined'
  console.log(typeof t.hello) // 'function'
  t.hello()
  t.blowUp()
  console.log(original.passing()) // false
  t.end() // ends the subtest
})

t.pluginLoaded(plugin: TapPlugin): boolean

Returns true if the plugin is loaded.

Also asserts that t implements the type returned by the plugin function.

So, for example, if a plugin might be loaded, you can use this to get TypeScript to know about it.

import t from 'tap'
import { Test } from '@tapjs/test'

const plugin = t => ({
  hello: () => console.log('hello from ', t.name),
  blowUp: () => t.fail('blowing up'),
})

const maybeBlowup = (t: Test) => {
  if (t.pluginLoaded(plugin)) {
    t.blowUp()
  } else {
    t.pass('no blowup required')
  }
}

t.test('maybe blow up', original => {
  const t = original.applyPlugin(plugin)
  maybeBlowup(original) // emits passing 'no blowup required'
  maybeBlowup(t) // blows up
  t.end()
})

t.test(), t.todo(), t.skip()

Creates a subtest. You've seen this one before. This is the class that implements it.

signature: string

The signature of the plugins built into this Test class.

loaders: string[]

The loaders added by plugins.

testFileExtensions: Set<string>

The test file extensions added by plugins.

Keywords

FAQs

Package last updated on 08 Jul 2024

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