JamieMason/Jasmine-Matchers

View on GitHub
examples/jasmine-typescript/src/types.spec.ts

Summary

Maintainability
A
0 mins
Test Coverage
import 'jasmine-expect';

it('defines types correctly', () => {
  expect(new Date(2)).toBeAfter(new Date(1));
  expect([]).toBeArray();
  expect([true]).toBeArrayOfBooleans();
  expect([1]).toBeArrayOfNumbers();
  expect([{}]).toBeArrayOfObjects();
  expect([1]).toBeArrayOfSize(1);
  expect(['']).toBeArrayOfStrings();
  expect(new Date(1)).toBeBefore(new Date(2));
  expect(true).toBeBoolean();
  expect('1').toBeCalculable();
  expect(new Date()).toBeDate();
  expect([]).toBeEmptyArray();
  expect({}).toBeEmptyObject();
  expect('').toBeEmptyString();
  expect(2).toBeEvenNumber();
  expect(() => ({})).toBeFunction();
  expect(2).toBeGreaterThanOrEqualTo(1);
  expect('<div></div>').toBeHtmlString();
  expect(new Date().toISOString()).toBeIso8601();
  expect('{}').toBeJsonString();
  expect(1).toBeLessThanOrEqualTo(2);
  expect('ab').toBeLongerThan('a');
  expect(2).toBeNear(1, 1);
  expect([1]).toBeNonEmptyArray();
  expect({ a: 1 }).toBeNonEmptyObject();
  expect('x').toBeNonEmptyString();
  expect(1).toBeNumber();
  expect({}).toBeObject();
  expect(1).toBeOddNumber();
  expect(/abc/).toBeRegExp();
  expect('a').toBeSameLengthAs('a');
  expect('a').toBeShorterThan('ab');
  expect('').toBeString();
  expect(new Date()).toBeValidDate();
  expect(' ').toBeWhitespace();
  expect(1).toBeWholeNumber();
  expect(2).toBeWithinRange(1, 3);
  expect('ab').toEndWith('b');
  expect({ prop: [] }).toHaveArray('prop');
  expect({ prop: [true] }).toHaveArrayOfBooleans('prop');
  expect({ prop: [1] }).toHaveArrayOfNumbers('prop');
  expect({ prop: [{}] }).toHaveArrayOfObjects('prop');
  expect({ prop: [1] }).toHaveArrayOfSize('prop', 1);
  expect({ prop: [''] }).toHaveArrayOfStrings('prop');
  expect({ prop: true }).toHaveBoolean('prop');
  expect({ prop: '1' }).toHaveCalculable('prop');
  expect({ prop: new Date() }).toHaveDate('prop');
  expect({ prop: new Date(2) }).toHaveDateAfter('prop', new Date(1));
  expect({ prop: new Date(1) }).toHaveDateBefore('prop', new Date(2));
  expect({ prop: [] }).toHaveEmptyArray('prop');
  expect({ prop: {} }).toHaveEmptyObject('prop');
  expect({ prop: '' }).toHaveEmptyString('prop');
  expect({ prop: 2 }).toHaveEvenNumber('prop');
  expect({ prop: '<div></div>' }).toHaveHtmlString('prop');
  expect({ prop: new Date().toISOString() }).toHaveIso8601('prop');
  expect({ prop: '{}' }).toHaveJsonString('prop');
  expect({ prop: undefined }).toHaveMember('prop');
  expect({ prop: () => ({}) }).toHaveMethod('prop');
  expect({ prop: [1] }).toHaveNonEmptyArray('prop');
  expect({ prop: { a: 1 } }).toHaveNonEmptyObject('prop');
  expect({ prop: 'x' }).toHaveNonEmptyString('prop');
  expect({ prop: 1 }).toHaveNumber('prop');
  expect({ prop: 2 }).toHaveNumberWithinRange('prop', 1, 3);
  expect({ prop: {} }).toHaveObject('prop');
  expect({ prop: 1 }).toHaveOddNumber('prop');
  expect({ prop: '' }).toHaveString('prop');
  expect({ prop: 'ab' }).toHaveStringLongerThan('prop', 'a');
  expect({ prop: 'a' }).toHaveStringSameLengthAs('prop', 'a');
  expect({ prop: 'a' }).toHaveStringShorterThan('prop', 'ab');
  expect({ prop: undefined }).toHaveUndefined('prop');
  expect({ prop: ' ' }).toHaveWhitespaceString('prop');
  expect({ prop: 1 }).toHaveWholeNumber('prop');
  expect('abc').toStartWith('ab');
  expect(() => {
    throw new Error('');
  }).toThrowAnyError();
  expect(() => {
    throw new Error('');
  }).toThrowErrorOfType('Error');
});