2.2.2 • Published 1 year ago

vitest-environment-dynalite v2.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

vitest-environment-dynalite

:warning: This library was renamed to vitest-dynamodb-lite.
Because after v2.0.0, vitest-environment-dynalite does not use vitest environment.

Rewritten from jest-dynalite to use in vitest.

Features

  • Optionally clear tables between tests
  • Isolated tables between test runners
  • Ability to specify config directory
  • No java requirement
  • Works with only @aws-sdk/client-dynamodb instead of aws-sdk

Installation

npm i vitest-environment-dynalite -D
# or
yarn add vitest-environment-dynalite -D
# or
pnpm add vitest-environment-dynalite -D

Usage

1. Set setupFiles in vitest.config.ts

// vitest.config.ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    setupFiles: ["vitest-environment-dynalite"],
  },
});

2. Config file

In your project root, create a config file with the tables schemas, and an optional basePort to run dynalite on.

The config file can be written in either json, js or cjs format.

In json:

{
  "tables": [
    {
      "TableName": "table",
      "KeySchema": [{ "AttributeName": "id", "KeyType": "HASH" }],
      "AttributeDefinitions": [{ "AttributeName": "id", "AttributeType": "S" }],
      "ProvisionedThroughput": {
        "ReadCapacityUnits": 1,
        "WriteCapacityUnits": 1
      }
    }
  ],
  "basePort": 8000
}

In js or cjs:

module.exports = {
  // your configures
};

3. Update your source code

const client = new DynamoDBClient({
  ...yourConfig,
  ...(process.env.MOCK_DYNAMODB_ENDPOINT && {
    endpoint: process.env.MOCK_DYNAMODB_ENDPOINT,
    region: "local",
  }),
});

process.env.MOCK_DYNAMODB_ENDPOINT is unique to each test runner.

After all your tests, make sure you destroy your client. You can even do this by adding an afterAll in a setupFilesAfterEnv file.

afterAll(() => {
  client.destroy();
});

Optional Using fixtures

Some fixture data can be given before each test:

vitest-environment-dynalite-config.json:

{
  "tables": [
    {
      ...,
      "data": [
        { "id": "a", "someattribute": "hello world" }
      ]
    }
  ],
}

Debug errors

If you face any error in closing db, you can enable debug mode to see the error:

VITEST_ENVIRONMENT_DYNALITE_DEBUG_CLOSING_DB=true npx vitest

License

MIT

2.2.1

1 year ago

2.2.2

1 year ago

2.2.0

1 year ago

2.1.0

1 year ago

2.0.0

1 year ago

1.0.2

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago