SwitchBot

日付期間の重複チェック - Qiita

SQLである期間が他の期間と重複しているかをチェックするのにするのに使うSQL。

パッとは出てこなかったのでメモ。

WHERE
比較開始日付 <= 対象終了日付 AND 比較終了日付 >= 対象開始日付

Jest でリダイレクト処理のテスト

location.href = '/hoge/huga'

これだとリダイレクトをかける関数のテストが出来ず困るので、関数で指定出来る方が望ましく、リダイレクトには location.assign を使用した。

test('jest で redirect の test', () => {
  window.location.assign = jest.fn()
  expect(location.assign).toBeCalledWith(redirectTo)
})

Timer Mocks · Jest

setTimeout を jest でテストしたくて使ったテクニック。

jest.useFakeTimers();

test('waits 1 second before ending the game', () => {
  const timerGame = require('../timerGame');
  timerGame();

  expect(setTimeout).toHaveBeenCalledTimes(1);
  expect(setTimeout).toHaveBeenLastCalledWith(expect.any(Function), 1000);
});