Skip to content

vrknetha/playwright-indexeddb

Repository files navigation

playwright-indexeddb

A powerful and type-safe library for interacting with IndexedDB in Playwright tests.

Features

  • 🎭 Seamless integration with Playwright
  • 📦 Full TypeScript support
  • 🔄 Complete CRUD operations
  • 🧪 Comprehensive test coverage
  • 🚀 Promise-based API
  • 💪 Type-safe operations

Installation

npm install playwright-indexeddb

Usage

import { test } from "@playwright/test";
import { PlaywrightIndexedDB } from "playwright-indexeddb";

test("example test", async ({ page }) => {
  // Initialize IndexedDB
  const db = new PlaywrightIndexedDB(page, {
    dbName: "myDatabase",
    storeName: "myStore",
    version: 1, // optional, defaults to 1
  });

  // Put an item
  await db.putItem({ id: 1, name: "Test Item" }, 1);

  // Get an item
  const item = await db.getItem(1);

  // Get all items
  const allItems = await db.getAllItems();

  // Delete an item
  await db.deleteItem(1);

  // Clear all items
  await db.clear();
});

API Reference

Constructor

new PlaywrightIndexedDB(page: Page, options: IndexedDBOptions)

Options

  • dbName: string - Name of the IndexedDB database
  • storeName: string - Name of the object store
  • version?: number - Database version (optional, defaults to 1)

Methods

getAllItems<T>()

Returns all items from the store as an array of type T.

getItem<T>(key: IDBValidKey)

Returns a single item of type T for the given key, or null if not found.

putItem<T>(item: T, key?: IDBValidKey)

Stores an item in the database. If key is provided, it will be used as the item's key.

deleteItem(key: IDBValidKey)

Deletes the item with the specified key.

clear()

Removes all items from the store.

Development

# Install dependencies
npm install

# Run tests
npm test

# Run linter
npm run lint

# Build package
npm run build

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT

Support

If you find any bugs or have feature requests, please create an issue in the GitHub repository.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published