playwright-i18next-fixture
🚀 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