Skip to content

Instantly share code, notes, and snippets.

@edele
Created January 9, 2018 09:26
Show Gist options
  • Select an option

  • Save edele/1ab66838e8e8142dcb2fb79b08e2fd5b to your computer and use it in GitHub Desktop.

Select an option

Save edele/1ab66838e8e8142dcb2fb79b08e2fd5b to your computer and use it in GitHub Desktop.
const isNumber = require('lodash/isNumber');
const isString = require('lodash/isString');
expect.extend({
toBeArray(received) {
return {
pass: Array.isArray(received),
message: () => `Expected ${received} to be array`
};
},
toBeArrayOfStrings(received) {
let pass = Array.isArray(received);
if (pass) {
received.forEach(x => {
if (!isString(x)) pass = false;
});
}
return {
pass,
message: () => `Expected ${received} to be array`
};
},
toBeString(received) {
return {
pass: isString(received),
message: () => `Expected ${received} to be string`
};
},
toBeNumber(received) {
return {
pass: isNumber(received),
message: () => `Expected ${received} to be number`
};
}
});
test('matchers', () => {
expect([]).toBeArrayOfStrings();
expect(['1', '2', '3']).toBeArrayOfStrings();
expect({}).not.toBeArrayOfStrings();
expect([1, 2]).not.toBeArrayOfStrings();
expect([1, '2']).not.toBeArrayOfStrings();
expect(['1', 2]).not.toBeArrayOfStrings();
expect({}).not.toBeArrayOfStrings();
expect('').not.toBeArrayOfStrings();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment