playwright-i18next-fixture
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published


playwright-i18next-fixture

📝 Use your `i18next` translations in Playwright to create multi-language selectors

Build Status Code Style Package Version MIT License


🚀 Use case

Selecting by text can be a problem with e2e testing. Tying your expectations to text can led to problems with multi-language pages.

With the power i18next and fixtures we can easily create multi-language selectors by defining keys for our text selectors


🌱 Installation

# Yarn
yarn add --dev playwright-i18next-fixture

# PNPM
pnpm add --D playwright-i18next-fixture

# NPM
npm install --save-dev playwright-i18next-fixture

📝 Usage

Create the i18next instance as you would in your browser

import { test as base } from "@playwright/test";
import { createI18nFixture, getI18nInstance } from "playwright-i18next-fixture";

const i18nFixture = createI18nFixture({
  // i18n plugins
  plugins: [ ... ]
  // i18n configuration options
  options: {
    lng: 'en',
    resources: { ... }
  },
  // Fetch translations in every test or fetch once
  // Default: true
  cache: false
  // Run as auto fixture to be available through all tests by getI18nInstance()
  // Default: true
  auto: true
})

const test = base.extend(i18nFixture);

// Context is now shared
test("my test", async ({ i18n, t }) => {});

// If auto is enabled, you can also use the manual fn
// This is useful to inject directly in classes
class ExampleClass {
   readonly i18n: i18n = getI18nInstance()
}

LICENSE

MIT

Package Sidebar

Install

npm i playwright-i18next-fixture

Weekly Downloads

5,779

Version

1.0.0

License

MIT

Unpacked Size

238 kB

Total Files

22

Last publish

Collaborators

  • cubanducko