Skip to main content

Object

The @archibald/testing package provides functionality to work with objects.

mockProperty

mockProperty function can be used to mock properties on an object.

import { mockProperty } from '@archibald/testing';

mockProperty(OBJECT, PROPERTY_NAME, TYPE, VALUE);

Example

import { mockProperty, MockType, unmockProperty } from '@archibald/testing';

const propOneValue = 'propOne';
const propTwoValue = 'propTwo';
const newValue = 'new value';

const testObj = {
propOne: function () {
return propOneValue;
},
propTwo: propTwoValue
};

describe('mockProperty', () => {
it('should mock function', () => {
expect(testObj.propOne()).toBe(propOneValue);
mockProperty(testObj, 'propOne', 'get', () => newValue);
expect(testObj.propOne()).toBe(newValue);
});

it('should mock value', () => {
expect(testObj.propTwo).toBe(propTwoValue);
mockProperty(testObj, 'propTwo', 'value', newValue);
expect(testObj.propTwo).toBe(newValue);
});
});

unmockProperty

unmockProperty function can be used to remove mock of properties on an object.

import { unmockProperty } from '@archibald/testing';

unmockProperty(OBJECT, PROPERTY_NAME);

Example

import { mockProperty, MockType, unmockProperty } from '@archibald/testing';

const propOneValue = 'propOne';
const propTwoValue = 'propTwo';
const newValue = 'new value';

const testObj = {
propOne: function () {
return propOneValue;
},
propTwo: propTwoValue
};

describe('unmockProperty', () => {
it('should unmock function', () => {
mockProperty(testObj, 'propOne', 'get', () => newValue);
expect(testObj.propOne()).toBe(newValue);

unmockProperty(testObj, 'propOne');
expect(testObj.propOne()).toBe(propOneValue);
});

it('should unmock value', () => {
mockProperty(testObj, 'propTwo', 'value', newValue);
expect(testObj.propTwo).toBe(newValue);

unmockProperty(testObj, 'propTwo');
expect(testObj.propTwo).toBe(propTwoValue);
});
});