JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 43957
  • Score
    100M100P100Q155605F
  • License MIT

puppeteer + dom-testing-library

Package Exports

  • pptr-testing-library

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pptr-testing-library) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

pptr-testing-library

NPM Package Build Status Coverage Status Dependencies

puppeteer + dom-testing-library = 💖

All your favorite user-centric querying functions from react-testing-library/dom-testing-library available from Puppeteer!

Install

npm install --save-dev pptr-testing-library

Use

const puppeteer = require('puppeteer')
require('pptr-testing-library/extend')

const browser = await puppeteer.launch()
const page = await browser.newPage()

// Grab ElementHandle for document, this convenience method added by pptr-testing-library/extend
const $document = await page.getDocument()

// query methods are added to prototype of ElementHandle
const $form = await $document.getByTestId('my-form')
// returned elements are ElementHandles too!
const $email = await $form.getByLabelText('Email')
// interact with puppeteer like usual
await $email.type('pptr@example.com')

For those less enthused by prototype manipulation, we've got you covered too.

const puppeteer = require('puppeteer')
const {getDocument, queries} = require('pptr-testing-library')

const browser = await puppeteer.launch()
const page = await browser.newPage()

const $document = await getDocument(page)
const $form = await queries.getByTestId($document, 'my-form')
// ...

API

See dom-testing-libary API for more. All get*/query* methods are supported.

  • getDocument(page: puppeteer.Page): ElementHandle - get an ElementHandle for the document
  • extendObjectWithTestingUtils(handle: ElementHandle): ElementHandle & TestingUtils - extend the input object with
  • queries: TestingUtils - the query subset of dom-testing-library exports
    • queryByPlaceholderText
    • queryAllByPlaceholderText
    • getByPlaceholderText
    • getAllByPlaceholderText
    • queryByText
    • queryAllByText
    • getByText
    • getAllByText
    • queryByLabelText
    • queryAllByLabelText
    • getByLabelText
    • getAllByLabelText
    • queryByAltText
    • queryAllByAltText
    • getByAltText
    • getAllByAltText
    • queryByTestId
    • queryAllByTestId
    • getByTestId
    • getAllByTestId
    • queryByTitle
    • queryAllByTitle
    • getByTitle
    • getAllByTitle

Special Thanks

dom-testing-library of course!

LICENSE

MIT