2020-11-11 SwitchBot買った / 日付期間の重複チェック / Jest redirect/setTimeout test
SwitchBot
スマホで温度・湿度をトラッキングしたりエアコンとか操作できるのは良い体験だった。次は音声操作とか自動化まわりを設定してみよう。 pic.twitter.com/8EekyuuHFI
— toshimaru (@toshimaru_e) November 11, 2020
日付期間の重複チェック - 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);
});