Improve naming of a util function & add unit test

isOlderThan -> isValidDateAndOlderThan

See: https://github.com/balena-os/balena-supervisor/pull/2170#discussion_r1226809686
Signed-off-by: Christina Ying Wang <christina@balena.io>
This commit is contained in:
Christina Ying Wang
2023-06-14 17:24:30 -07:00
parent ab80f198d8
commit ace642ea0f
3 changed files with 49 additions and 7 deletions

View File

@ -12,7 +12,7 @@ import {
generateStep,
CompositionStepAction,
} from './composition-steps';
import { isOlderThan } from './utils';
import { isValidDateAndOlderThan } from './utils';
import * as targetStateCache from '../device-state/target-state-cache';
import { getNetworkGateway } from '../lib/docker-utils';
import * as constants from '../lib/constants';
@ -671,7 +671,7 @@ export class App {
} else if (target.config.running !== current.config.running) {
if (
this.requirementsMetForSpecialStart(current, target) &&
!isOlderThan(current.createdAt, SECONDS_TO_WAIT_FOR_START)
!isValidDateAndOlderThan(current.createdAt, SECONDS_TO_WAIT_FOR_START)
) {
return generateStep('noop', {});
}

View File

@ -694,8 +694,20 @@ export function dockerMountToServiceMount(
return mount as LongDefinition;
}
export function isOlderThan(currentTime: Date | null, seconds: number) {
if (currentTime == null) {
function isDate(d: unknown): d is Date {
return d instanceof Date;
}
/**
* @param currentTime Date instance
* @param seconds time in seconds to check against currentTime
* @returns
*/
export function isValidDateAndOlderThan(
currentTime: unknown,
seconds: number,
): boolean {
if (!isDate(currentTime)) {
return false;
}
return new Date().getTime() - currentTime.getTime() > seconds * 1000;