# create-test-id

> Creates typed testId for autotests

Latest version **0.0.5** (published 2022-05-31) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install create-test-id
pnpm add create-test-id
yarn add create-test-id
bun add create-test-id
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.0.5 |
| Published | 2022-05-31 |
| First published | 2022-05-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=16 |
| Dependencies | 0 |
| Unpacked size | 8.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | uid11 |
| Maintainers | uid-11222 |
| Keywords | testId, e2e, autotest, locator, selector |

## Links

- npm: https://www.npmjs.com/package/create-test-id
- Repository: https://github.com/uid11/create-test-id
- Homepage: https://github.com/uid11/create-test-id#readme
- Issues: https://github.com/uid11/create-test-id/issues
- npm.io page: https://npm.io/package/create-test-id

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 0.0.5 (latest) — 2022-05-31
- 0.0.4 — 2022-05-26
- 0.0.3 — 2022-05-26
- 0.0.2 — 2022-05-25
- 0.0.1 — 2022-05-25

## README

# create-test-id

[![NPM version][npm-image]][npm-url]
[![dependencies: none][dependencies-none-image]][dependencies-none-url]
[![code style: prettier][prettier-image]][prettier-url]
[![TypeScript][typescript-image]][typescript-url]
[![Conventional Commits][conventional-commits-image]][conventional-commits-url]
[![License MIT][license-image]][license-url]

Creates typed testId for autotests.

## Install

Requires [node](https://nodejs.org/en/) version 16 or higher:

```sh
npm install create-test-id
```

## Usage

In TypeScript module `label.tsx` with component `Label`:

```tsx
import createTestId from 'create-test-id';
// or
import {createTestId} from 'create-test-id';

import {inputTestId} from 'components/Input';

export const labelTestId = createTestId<{input: typeof inputTestId; text: unknown}>();

labelTestId.input = inputTestId;

export const Label = () => {
  ...

  return (
    <div data-testid={labelTestId}>
      ...
      <span data-testid={labelTestId.text}>...<span>
    </div>
  );
};
```

In TypeScript module `App.tsx` with root component `App`:

```tsx
import {labelTestId} from 'components/Label';

export const appTestId = createTestId<{label: typeof labelTestId; header: unknown}>('fooWebApp');

appTestId.label = labelTestId;
```

For production you can use `createTestIdForProduction`. This function has the same API as `createTestId`,
but does not create new objects, and its `testId` is always equal to the empty string.

```tsx
import {createTestId as createTestIdForDev, createTestIdForProduction} from 'create-test-id';

export const createTestId = __IS_PRODUCTION__ ? createTestIdForProduction : createTestIdForDev;
```

## License

[MIT][license-url]

[conventional-commits-image]: https://img.shields.io/badge/Conventional_Commits-1.0.0-yellow.svg 'The Conventional Commits specification'
[conventional-commits-url]: https://www.conventionalcommits.org/en/v1.0.0/
[dependencies-none-image]: https://img.shields.io/badge/dependencies-none-success.svg 'No dependencies'
[dependencies-none-url]: https://github.com/uid11/create-test-id/blob/main/package.json
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg 'The MIT License'
[license-url]: LICENSE
[npm-image]: https://img.shields.io/npm/v/create-test-id.svg 'create-test-id'
[npm-url]: https://www.npmjs.com/package/create-test-id
[prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg 'Prettier code formatter'
[prettier-url]: https://prettier.io/
[typescript-image]: https://img.shields.io/badge/types-TypeScript-blue.svg 'Full TypeScript support'
[typescript-url]: https://www.typescriptlang.org/

---
_Source: https://npm.io/package/create-test-id · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
