New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@nokkel/testing

Package Overview
Dependencies
Maintainers
0
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nokkel/testing

A typescript testing library for Koa APIs or Cypress e2e testing

  • 0.1.9
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
210
decreased by-24.19%
Maintainers
0
Weekly downloads
 
Created
Source

Nokkel Testing Library

A typescript testing library for Koa APIs or Cypress e2e testing. This library provides useful helper Typescript Jest configuration, functions and classes for mocking and generating values for your tests.

Using this library

You can install this library using the following command

npm add -D @nokkel/testing jest jest-junit ts-jest ts-node

It is also recommended to install the following typing for your typescript project

npm add -D @types/jsonwebtoken @types/jest @types/koa @types/node

Once installed you can configure Jest by adding the following files to your project

jest.config.ts

import type { Config } from 'jest';
import { pathsToModuleNameMapper } from 'ts-jest';

import baseConfig from '@nokkel/testing/dist/jest.config';

import { compilerOptions } from './tsconfig.json';

const config: Config = {
  ...baseConfig,
  moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths),
  modulePaths: [compilerOptions.baseUrl],
};

export default config;

Testing with kafka

In your test file where you need to test for events, add the following test case:

import { KafkaClient, KafkaMessage } from '@nokkel/testing';
import Chance from 'chance';


const EXPECTED_EVENTS: any[] = [];

const KAFKA = new KafkaClient(
  {
    clientId: config.event.clientId,
    brokers: config.event.brokers,
    logLevel: config.event.logLevel,
  },
  {
    groupId: CHANCE.string(),
  }
);

const CONSUMER = KAFKA.client;

describe(`${YOUR_EVENT_TOPIC} events`, () => {
  beforeEach(async () => {
    await KAFKA.setupClient([YOUR_EVENT_TOPIC]);
    await CONSUMER.connect();
  });

  afterAll(async () => {
    await KAFKA.tearDownTopics([YOUR_EVENT_TOPIC]);
    await CONSUMER.disconnect();
    await CONSUMER.stop();
  }, 10000);

  it('should have been published', async () => {
    const messages: KafkaMessage[] = [];

    KAFKA.consumeMessages(messages);
    await KAFKA.waitForMessages(messages);

    expect(messages).toEqual(
      expect.arrayContaining(
        EXPECTED_EVENTS.map(userPersona => {
          return {
            topic: YOUR_EVENT_TOPIC,
            message: expect.objectContaining({
              value: userPersona,
            }),
          };
        })
      )
    );
  }, 10000);
});

Where your default.yaml config file should have this:

event:
  clientId: account-api
  brokers:
    - localhost:9092
  logLevel: 0 # 0 = NOTHING, 1 = ERROR, 2 = WARN, 4 = INFO, 5 = DEBUG
  ssl: false

and custom-environment-variables.yaml should have this:

event:
  clientId: APP_NAME
  brokers:
    __name: EVENT_BROKERS
    __format: json
  ssl: EVENT_SSL
  logLevel: EVENT_LOG_LEVEL

Keywords

FAQs

Package last updated on 03 Dec 2024

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc