Skip to content

Commit

Permalink
[SecuritySolution][Unit Tests] - fix flakey unit test (elastic#81239) (
Browse files Browse the repository at this point in the history
…elastic#81266)

### Summary

Fixes flakey unit test that was using dateMath as opposed to a fixed date for consistent testing.
  • Loading branch information
yctercero committed Oct 21, 2020
1 parent d618098 commit 68dc471
Showing 1 changed file with 36 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
import dateMath from '@elastic/datemath';
import moment from 'moment';

import { EqlSearchStrategyResponse } from '../../../../../data_enhanced/common';
Expand All @@ -24,64 +23,64 @@ import { getMockEqlResponse, getMockEqlSequenceResponse } from './eql_search_res

describe('eql/helpers', () => {
describe('calculateBucketForHour', () => {
test('returns 2 if event occurred within 2 minutes of "now"', () => {
test('returns 2 if the difference in times is 2 minutes', () => {
const diff = calculateBucketForHour(
Number(dateMath.parse('now-1m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T05:56:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(2);
});

test('returns 10 if event occurred within 8-10 minutes of "now"', () => {
test('returns 10 if the difference in times is 8-10 minutes', () => {
const diff = calculateBucketForHour(
Number(dateMath.parse('now-9m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T05:48:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(10);
});

test('returns 16 if event occurred within 10-15 minutes of "now"', () => {
test('returns 16 if the difference in times is 10-15 minutes', () => {
const diff = calculateBucketForHour(
Number(dateMath.parse('now-15m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T05:42:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(16);
});

test('returns 60 if event occurred within 58-60 minutes of "now"', () => {
test('returns 60 if the difference in times is 58-60 minutes', () => {
const diff = calculateBucketForHour(
Number(dateMath.parse('now-59m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T04:58:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(60);
});

test('returns exact time difference if it is a multiple of 2', () => {
const diff = calculateBucketForHour(
Number(dateMath.parse('now-20m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T05:37:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(20);
});

test('returns 0 if times are equal', () => {
const diff = calculateBucketForHour(
Number(dateMath.parse('now')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T05:57:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(0);
});

test('returns 2 if event occurred within 2 minutes of "now" but arguments are flipped', () => {
test('returns 2 if the difference in times is 2 minutes but arguments are flipped', () => {
const diff = calculateBucketForHour(
Number(dateMath.parse('now')?.format('x')),
Number(dateMath.parse('now-1m')?.format('x'))
Date.parse('2020-02-20T05:57:54.037Z'),
Date.parse('2020-02-20T05:56:54.037Z')
);

expect(diff).toEqual(2);
Expand All @@ -91,53 +90,53 @@ describe('eql/helpers', () => {
describe('calculateBucketForDay', () => {
test('returns 0 if two dates are equivalent', () => {
const diff = calculateBucketForDay(
Number(dateMath.parse('now')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T05:57:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(0);
});

test('returns 1 if event occurred within 60 minutes of "now"', () => {
test('returns 1 if the difference in times is 60 minutes', () => {
const diff = calculateBucketForDay(
Number(dateMath.parse('now-40m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T05:17:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(1);
});

test('returns 2 if event occurred 60-120 minutes from "now"', () => {
test('returns 2 if the difference in times is 60-120 minutes', () => {
const diff = calculateBucketForDay(
Number(dateMath.parse('now-120m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T03:57:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(2);
});

test('returns 3 if event occurred 120-180 minutes from "now', () => {
test('returns 3 if the difference in times is 120-180 minutes', () => {
const diff = calculateBucketForDay(
Number(dateMath.parse('now-121m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T03:56:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(3);
});

test('returns 4 if event occurred 180-240 minutes from "now', () => {
test('returns 4 if the difference in times is 180-240 minutes', () => {
const diff = calculateBucketForDay(
Number(dateMath.parse('now-220m')?.format('x')),
Number(dateMath.parse('now')?.format('x'))
Date.parse('2020-02-20T02:15:54.037Z'),
Date.parse('2020-02-20T05:57:54.037Z')
);

expect(diff).toEqual(4);
});

test('returns 2 if event occurred 60-120 minutes of "now" but arguments are flipped', () => {
test('returns 2 if the difference in times is 60-120 minutes but arguments are flipped', () => {
const diff = calculateBucketForDay(
Number(dateMath.parse('now')?.format('x')),
Number(dateMath.parse('now-118m')?.format('x'))
Date.parse('2020-02-20T05:57:54.037Z'),
Date.parse('2020-02-20T03:59:54.037Z')
);

expect(diff).toEqual(2);
Expand Down

0 comments on commit 68dc471

Please sign in to comment.