diff --git a/src/matchers/toBeBeforeOrEqualTo.js b/src/matchers/toBeBeforeOrEqualTo.js new file mode 100644 index 00000000..a7cf0895 --- /dev/null +++ b/src/matchers/toBeBeforeOrEqualTo.js @@ -0,0 +1,20 @@ +export function toBeBeforeOrEqualTo(actual, expected) { + const { matcherHint, printReceived } = this.utils; + + const passMessage = () => + matcherHint('.not.toBeBeforeOrEqualTo', 'received', '') + + '\n\n' + + `Expected date to be before or equal to ${printReceived(expected)} but received:\n` + + ` ${printReceived(actual)}`; + + const failMessage = () => + matcherHint('.toBeBeforeOrEqualTo', 'received', '') + + '\n\n' + + `Expected date to be before or equal to ${printReceived(expected)} but received:\n` + + ` ${printReceived(actual)}`; + + const pass = actual <= expected; + const message = pass ? passMessage : failMessage; + + return { pass, message }; +} diff --git a/src/matchers/toBeBeforeOrEqualTo/index.js b/src/matchers/toBeBeforeOrEqualTo/index.js deleted file mode 100644 index aa7bd945..00000000 --- a/src/matchers/toBeBeforeOrEqualTo/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import predicate from './predicate'; - -const passMessage = (utils, received, before) => () => - utils.matcherHint('.not.toBeBeforeOrEqualTo', 'received', '') + - '\n\n' + - `Expected date to be before or equal to ${utils.printReceived(before)} but received:\n` + - ` ${utils.printReceived(received)}`; - -const failMessage = (utils, received, before) => () => - utils.matcherHint('.toBeBeforeOrEqualTo', 'received', '') + - '\n\n' + - `Expected date to be before or equal to ${utils.printReceived(before)} but received:\n` + - ` ${utils.printReceived(received)}`; - -export function toBeBeforeOrEqualTo(date, before) { - const pass = predicate(date, before); - if (pass) { - return { pass: true, message: passMessage(this.utils, date, before) }; - } - - return { pass: false, message: failMessage(this.utils, date, before) }; -} diff --git a/src/matchers/toBeBeforeOrEqualTo/predicate.js b/src/matchers/toBeBeforeOrEqualTo/predicate.js deleted file mode 100644 index a522eedb..00000000 --- a/src/matchers/toBeBeforeOrEqualTo/predicate.js +++ /dev/null @@ -1,5 +0,0 @@ -function toBeBeforeOrEqualTo(date, before) { - return date <= before; -} - -export default (date, before) => toBeBeforeOrEqualTo(date, before); diff --git a/src/matchers/toBeBeforeOrEqualTo/predicate.test.js b/src/matchers/toBeBeforeOrEqualTo/predicate.test.js deleted file mode 100644 index 3f3e8cde..00000000 --- a/src/matchers/toBeBeforeOrEqualTo/predicate.test.js +++ /dev/null @@ -1,18 +0,0 @@ -import predicate from './predicate'; - -const EARLIER = new Date('01/09/2019'); -const LATER = new Date('07/09/2019'); - -describe('toBeBeforeOrEqualTo Predicate', () => { - test('returns true when given a later date', () => { - expect(predicate(EARLIER, LATER)).toBe(true); - }); - - test('returns true when given an equal date', () => { - expect(predicate(EARLIER, EARLIER)).toBe(true); - }); - - test('returns false when given an earlier date', () => { - expect(predicate(LATER, EARLIER)).toBe(false); - }); -}); diff --git a/src/matchers/toBeBeforeOrEqualTo/__snapshots__/index.test.js.snap b/test/matchers/__snapshots__/toBeBeforeOrEqualTo.test.js.snap similarity index 100% rename from src/matchers/toBeBeforeOrEqualTo/__snapshots__/index.test.js.snap rename to test/matchers/__snapshots__/toBeBeforeOrEqualTo.test.js.snap diff --git a/src/matchers/toBeBeforeOrEqualTo/index.test.js b/test/matchers/toBeBeforeOrEqualTo.test.js similarity index 94% rename from src/matchers/toBeBeforeOrEqualTo/index.test.js rename to test/matchers/toBeBeforeOrEqualTo.test.js index 01d9a608..f4a6f635 100644 --- a/src/matchers/toBeBeforeOrEqualTo/index.test.js +++ b/test/matchers/toBeBeforeOrEqualTo.test.js @@ -1,4 +1,4 @@ -import * as matcher from './'; +import * as matcher from 'src/matchers/toBeBeforeOrEqualTo'; expect.extend(matcher);