data-test-name
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

data-test-name

Helpers for clean and maintainable selectors in browser (end-to-end, puppeteer) tests

Build Status Coverage Status

Example

// test.js
import { selector } from 'data-test-name';

const loginForm = selector('login');

await page.waitFor(loginForm());
await page.type(selector(loginForm, 'email')(), 'user@example.com');
await page.type(selector(loginForm, 'password')(), 'secret');
await page.click(selector(loginForm, 'submit')());
// LoginForm.jsx

export const LoginForm = ({ onSubmit }) => (
	<form
		onSubmit={onSubmit}
		data-test-name="login"
	>
		<input
			type="email"
			data-test-name="email"
		/>

		<input
			type="password"
			data-test-name="password"
		/>

		<button
			type="submit"
			data-test-name="submit"
		>
	</form>
);

Why

When selectors in your tests do not use classnames, ids or names, you can easily change styles, swap commponents, etc. without breaking the tests. Just keep the same data-test-name values.

Install

yarn add --dev data-test-name

/data-test-name/

    Package Sidebar

    Install

    npm i data-test-name

    Weekly Downloads

    2

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    29.1 kB

    Total Files

    17

    Last publish

    Collaborators

    • futpib