/test-ipfs-example

A test suite for testing examples using playwright for browsers and simple output matching for node

Primary LanguageTypeScriptOtherNOASSERTION

test-ipfs-example

codecov CI

A test suite for testing examples using playwright for browsers and simple output matching for node

Install

$ npm i test-ipfs-example

Browser <script> tag

Loading this module through a script tag will make it's exports available as TestIpfsExample in the global namespace.

<script src="https://unpkg.com/test-ipfs-example/dist/index.min.js"></script>

Table of contents

Usage

Node.js tests

To run node js tests, create a test file similar to:

import { waitForOutput } from 'test-ipfs-example/node'

await waitForOutput('the output to expect', 'path/to/example.js')

Run it from your package.json

{
  "scripts": {
    "test": "test-node-example ./my-test.spec.js"
  }
}

Browser tests

To run browser tests, create a test file similar to:

import { setup, expect } from 'test-ipfs-example/browser'

const test = setup({
  // optionally configure server(s) - if omitted one will be created listening
  // on a random high port that serves the contents of the `dist` folder in
  // the root of the example
  servers: [{
    port: 0,
    host: '127.0.0.1',
    path: 'dist'
  }]
})

test.describe('test a browser app', () => {
  test.beforeEach(async ({ servers, page }) => {
    await page.goto(servers[0].url)
  })

  test('should have browser success', async ({ page }) => {
    // make some playwright assertions here
    await page.waitForSelector('#app')
    const connections = await page.textContent('#app')
    expect(connections).toContain('hello world')
  })
})

Run it from your package.json

{
  "scripts": {
    "test": "test-browser-example ./my-test.spec.js"
  }
}

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.