Skip to content

Commit

Permalink
feat(date): adding negated date maching condition operator
Browse files Browse the repository at this point in the history
  • Loading branch information
roggervalf committed May 6, 2021
1 parent 5dd4171 commit 6081df9
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 9 deletions.
17 changes: 17 additions & 0 deletions src/conditionOperators/date/convertDate.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { convertDate } from './convertDate';

describe('convertDate', () => {
describe('when passing a Date instance', () => {
it('returns time in milliseconds', () => {
expect(convertDate(new Date('December 17, 1995 03:24:00'))).toBe(819188640000);
expect(convertDate(new Date('December 18, 1995 03:24:00'))).toBe(819275040000);
});
});

describe('when passing a string', () => {
it('returns time in milliseconds', () => {
expect(convertDate('December 17, 1995 03:24:00')).toBe(819188640000);
expect(convertDate('December 15, 1991 03:24:00')).toBe(692785440000);
});
});
});
9 changes: 9 additions & 0 deletions src/conditionOperators/date/convertDate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
export type DateType = Date | string;

export const convertDate = (date: DateType): number=>{
if(date instanceof Date){
return date.getTime();
}

return Date.parse(date);
}
10 changes: 1 addition & 9 deletions src/conditionOperators/date/dateEquals.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
type DateType = Date | string;

const convertDate = (date: DateType): number=>{
if(date instanceof Date){
return date.getTime();
}

return Date.parse(date);
}
import {DateType, convertDate} from './convertDate';

/**
* Exact date matching.
Expand Down
13 changes: 13 additions & 0 deletions src/conditionOperators/date/dateNotEquals.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { dateNotEquals } from './dateNotEquals';

describe('dateNotEquals', () => {
it('returns true', () => {
expect(dateNotEquals(new Date('December 17, 1995 03:24:00'), new Date('December 18, 1995 03:24:00'))).toBeTruthy;
expect(dateNotEquals('December 15, 1991 03:24:00', new Date('December 17, 1995 03:24:00'))).toBeTruthy;
});

it('returns false', () => {
expect(dateNotEquals(new Date('December 17, 1995 03:24:00'), 'December 17, 1995 03:24:00')).toBeFalsy;
expect(dateNotEquals('December 15, 1994 03:24:00', new Date('December 15, 1994 03:24:00'))).toBeFalsy;
});
});
26 changes: 26 additions & 0 deletions src/conditionOperators/date/dateNotEquals.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import {DateType, convertDate} from './convertDate';

/**
* Negated date matching.
*
* @since 4.9.0
* @category Date
* @param {Date} data The value to be compared.
* @param {Date} expected The expected value.
* @returns {boolean} Returns `true` if `value` is not equal to `expected value`.
* @example
* ```javascript
* dateNotEquals('December 15, 1994 03:24:00', 'December 16, 1995 03:24:00')
* // => true
*
* dateNotEquals('December 15, 2000 03:24:00', 'December 15, 2000 03:24:00')
* // => false
* ```
*/
export function dateNotEquals(data: DateType, expected: DateType): boolean {
const convertedData = convertDate(data);
const convertedExpectation = convertDate(expected);
return (
convertedData !== convertedExpectation
);
}
2 changes: 2 additions & 0 deletions src/conditionOperators/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import {bool} from './boolean/bool';
import {dateEquals} from './date/dateEquals';
import {dateNotEquals} from './date/dateNotEquals';
import {numericEquals} from './numeric/numericEquals';
import {numericGreaterThan} from './numeric/numericGreaterThan';
import {numericGreaterThanEquals} from './numeric/numericGreaterThanEquals';
Expand All @@ -15,6 +16,7 @@ import {stringNotEqualsIgnoreCase} from './string/stringNotEqualsIgnoreCase';
export const operators: Record<string, unknown>={
bool,
dateEquals,
dateNotEquals,
numericEquals,
numericGreaterThan,
numericGreaterThanEquals,
Expand Down

0 comments on commit 6081df9

Please sign in to comment.