🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

@3t-transform/test-n-vac

Package Overview
Dependencies
Maintainers
20
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@3t-transform/test-n-vac

💨 Test-N-Vac ✅ <img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yel

latest
Source
npmnpm
Version
1.2.6
Version published
Weekly downloads
106
16.48%
Maintainers
20
Weekly downloads
 
Created
Source

💨 Test-N-Vac ✅

Version License: MIT

The Test-N-Vac is a helper service that can be included in any JavaScript tests. The helper allows the tests to set up an architecture in the cloud that allows us to test our stacks from event in to event out.

🏠 3T Transform Homepage

For a tear down on how we have approached integration testing, take a look @ our blog! https://blog.3tplatform.com/an-exploration-of-integration-testing-in-a-serverless-environment

Requirements

  • AWS Account with the ability to:
    • Put Events
    • Create a SQS Queue
    • Create a Rule
    • Create an Event Target

Installation

NPM:

npm install @3t-transform/test-n-vac

Yarn:

yarn add @3t-transform/test-n-vac

Usage

The usage examples include the addition of an env file, this is a json/javascript file that contains the following:

  • The stage that we are testing e.g. uat. This is used to construct the event bridge name.
  • The region that the service is in that we are testing.

In your tests import the library:

const { testNVacClient } = require("@3t-transform/test-n-vac");

Create a client passing in the required values:

const helperClient = TestNVacClient({
	serviceName: "XXX",
	serviceSource: `integration.testing.${randomString}`,
	busName: `eventbridge-${process.env.Testing.STAGE_NAME}`, // The event bus name that the service is attached to
	region: process.env.AWS_REGION,
});

For more information on the client inputs, the code is documented

Before and after your test you need to spin up the testing architecture:

before(async () => {
	await helperClient.createTestArchitecture();
});

after(async () => {
	await helperClient.destroyTestArchitecture();
});

In the test, construct your event how you expect the rule to fire and call the fire event function:

await helperClient.fireEvent(request, "Event Topic");

Immediately following firing the event you can then run the following to check for resultant messages:

// We must call this one first as there is no way of telling what is the original event vs resultant events as they all match the same source
const initialEvent = await helperClient.getMessagesFromSQS();

const resultantEvent = await helperClient.getMessagesFromSQS();

If you have multiple events you can call this multiple times.

It's possible to increase the number of messages received, but that can be funky, it's better to get them one at a time from the queue

Author

👤 3t Transform

Show your support

Give a ⭐️ if this project helped you!

FAQs

Package last updated on 08 Dec 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts