お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
言語::TypeScriptNode.js::Jest開発::テスト

関数の仮引数にthisが入っているタイプの奴。FastifyのsetErrorHandlerに渡す関数のテストをする時に詰まったので書いておく。滅多に遭遇しないケースだと思う。

確認環境

Env Ver
jest 29.7.0
typescript 5.3.3

実装コード

export class HogeServer {
  constructor() {
    console.log();
  }
}

interface HogeServerInstance {
  setErrorHandler(
    handler: (
      this: HogeServer,
      error: unknown,
      callback: (code: number) => void
    ) => void
  ): HogeServer;
}

// 型定義にthisが入っていてテスト時に上手くいかない
// const handle: (this: HogeServer, error: unknown, callback: (code: number) => void) => void
type HandlerFunc = Parameters<HogeServerInstance['setErrorHandler']>[0];

export const handle: HandlerFunc = (err, cb) => {
  if (err instanceof Error) {
    cb(500);
  } else {
    cb(200);
  }
};

export const fuga = (s: HogeServerInstance) => {
  s.setErrorHandler(handle);
};

テストコード

import { HogeServer, handle } from '.';

describe('handle', () => {
  it('errがErrorインスタンスの時', () => {
    const thisMock = {} as unknown as HogeServer;
    const err = new Error('error-hoge');
    const cbFn = jest.fn();
    // .call()を使うことでthis付きで呼び出せる
    handle.call(thisMock, err, cbFn);

    expect(cbFn).toHaveBeenCalledWith(500);
  });

  it('errがErrorインスタンスではない時', () => {
    const thisMock = {} as unknown as HogeServer;
    const err = 1234;
    const cbFn = jest.fn();
    handle.call(thisMock, err, cbFn);

    expect(cbFn).toHaveBeenCalledWith(200);
  });
});
投稿日:
ジャンル::生活

今の時期は花粉がしんどくつらいが、それを多少なりとも抑えている話。

まずは花粉症を飲むこと、10月あたりから飲み始めていると効果がある。私はオロパタジン塩酸塩5mgとモンテルカスト錠10mgを飲んでいるが、これでかなり抑えられている。

更に我が家には24時間換気が入っているため、換気フィルターにも花粉対策を施している。部屋の通気口のフィルターを取り替えたの記事で書いたやつだ。これがあるとないとでは雲泥の差なので買ってよかった。

24時間換気用の高性能フィルターは24時間換気をしつつ、花粉症の症状を抑えるにはよいグッズだと思う。フィルターだけではどうしても花粉が入ってくるが、微量の花粉なら薬で抑えられるという理屈だ。

投稿日:
ジャンル::生活

私の家の布団は万年床なのだが、今から6年ほど前、突然カビが生え始めて悩んでいた。原因はどうやら加齢で発汗量が増えたことによるものだった。(おじさんが汗臭いのは多分これである)

そこで除湿マットを買ったり、毎日布団を裏返してみたりしたのだが効果がなく、カビ臭い布団と付き合う日々が続いていた。

改善の契機となったのはテイジン ベルオアシス使用 すのこ型吸湿マット ダブルインパクトPlusを使い始めてからだ。このマットは分厚く、汗をよく吸う。しかも良い感じに蒸散してくれるのでカビが生えなくなった。

ただこれだけだとカビは防げたものの、割とすぐに吸湿マット自体が汗臭くなる問題があった。

次に試したのがパジャマを買うことだ。パジャマは汗をよく吸うと聞いたので試してみたところ、これが当たった。パジャマが汗を吸うことで吸湿マット自体に汗が染みこみすぎる問題が軽減された。

更に24時間換気付きの物件に引っ越すことで吸湿マットの乾きがよくなり、更に状態が改善した。恐らくこれは今まで密室で換気がされてなかったところ、換気により室内の空気が入れ替わるため、多少なりと乾くようになったのだろう。

投稿日:
OS::Windowsジャンル::ガジェット

NEC Lavie PC-GN20D72DYEDYH2YAAを買ったところ、Edgeが「組織によって管理されています」状態だったのでそれを解除した方法。

以下のレジストリコマンドを流すことで解消した。別に消さなくても支障はないが、なんとなく邪魔だったので。

reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge /v WebAppInstallForceList

2022/03/02の公式ニュースによると以下の通りあり、転送容量の上限が撤廃されていた。これまでアクセス増に伴う転送制限に過敏になっていたが、もうそこは考えなくてもいいようだ。これでこそ大容量ストレージが生かせるというものだ。

さくらのレンタルサーバを2022年2月15日以前にご契約されたお客さま※、さくらのレンタルサーバ リセール向けサービスおよびさくらのマネージドサーバをご契約のお客さまを対象に、転送量の無制限化を実施いたします。これにより、さくらのレンタルサーバ / マネージドサーバをご利用いただいている全てのお客さまの転送量が無制限となります。

因みに昔はファイルストレージ的な使い方をして詰まらせてしまい、コンテンツブーストで回避していたことが何度かあった。