This package has been deprecated

Author message:

replaced by @chubbyjs/chubbyjs-mock

chubbyjs-mock

1.0.0 • Public • Published

chubbyjs-mock

CI Coverage Status Infection MSI

bugs code_smells coverage duplicated_lines_density ncloc sqale_rating alert_status reliability_rating security_rating sqale_index vulnerabilities

Description

A very strict mocking library for class based objects.

Requirements

  • node: 12

Installation

Through NPM as @chubbyjs/chubbyjs-mock.

npm i @chubbyjs/chubbyjs-mock@1.0

Usage

import { expect, test } from '@jest/globals';
import ArgumentCallback from '@chubbyjs/chubbyjs-mock/dist/Argument/ArgumentCallback';
import ArgumentInstanceOf from '@chubbyjs/chubbyjs-mock/dist/Argument/ArgumentInstanceOf';
import Call from '@chubbyjs/chubbyjs-mock/dist/Call';
import MockByCalls from '@chubbyjs/chubbyjs-mock/dist/MockByCalls';

test('example', () => {
    class DateTimeService {
        public format(date: Date, format: string) {}
    }

    const mockByCalls = new MockByCalls();

    const dateTimeService = mockByCalls.create<DateTimeService>(DateTimeService, [
        Call.create('format')
            .with(new ArgumentInstanceOf(Date), 'c')
            .willReturn('2004-02-12T15:19:21+00:00'),
        Call.create('format')
            .with(new ArgumentCallback((date: Date) => expect(date).toBeInstanceOf(Date)), 'c')
            .willReturn('2008-05-23T08:12:55+00:00'),
    ]);

    expect(dateTimeService.format(new Date(), 'c')).toBe('2004-02-12T15:19:21+00:00');
    expect(dateTimeService.format(new Date(), 'c')).toBe('2008-05-23T08:12:55+00:00');

    // if you want to be sure, that the mocked calls and the method call matches
    expect(dateTimeService.__mockByCalls.calls.length).toBe(dateTimeService.__mockByCalls.index);
});

Copyright

Dominik Zogg 2021

Readme

Keywords

Package Sidebar

Install

npm i chubbyjs-mock

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

16.7 kB

Total Files

13

Last publish

Collaborators

  • npm