ドラッカー風エクササイズをした

別のチームでドラッカー風エクササイズをしていたので、今のチームでお試しでやってみた。

結構長く一緒に開発しているチームメンバーなので、あまり効果はないのかなと思いつつ、やってみると意外に新たな発見があったり、実はメンバー間で期待したりされていることがズレてたりして、とても良かった。

  • 自分の得意なこと
  • 仕事をする上で大事にしていること
  • 自分が大事にしている価値
  • 周りから期待されてると思っていること

を15分くらいで各自書いてもらって、1人ずつ発表してもらい、そのあと他のメンバーから意外だったことや期待してることについてフィードバックする、という流れで進めた。

今日はたまたまオフィス出社日でみんな顔を合わせながらやったけど、今後リモートでやる機会もふえるかなと思いツールとしてはmiroをつかった。miro便利。

自分の考えを話したり周りからどう期待されているのかを改めて会話すると照れるけど、それも良いスパイスになっていい感じの空気感になっていたと思う。

なかなか好評だったので、半年ごととかメンバーが変わったタイミングでやれるといいね、という話をしていた。

JestのmoduleNameMapperで画像のfile mockができなくてハマった

const { pathsToModuleNameMapper } = require('ts-jest/utils');
const { compilerOptions } = require('./tsconfig.json');

module.exports = {
  moduleNameMapper: pathsToModuleNameMapper(
    compilerOptions.paths,
    { prefix: '<rootDir>/' }
  )
}

tsconfig.jsonのcompilerOptionsにpaths設定をしているので、pathsToModuleNameMapperを使ってみたいな感じで書いていた。

svgファイルをimportするコードがあったので https://jestjs.io/ja/docs/webpack を参考にfileMockさせようと思いこんな感じで書いた。

const { pathsToModuleNameMapper } = require('ts-jest/utils');
const { compilerOptions } = require('./tsconfig.json');

module.exports = {
  moduleNameMapper: pathsToModuleNameMapper(
    {
      "\\.(jpg|jpeg|png|gif|svg)$": ["./src/tests/mocks/fileMock.js"],
      ...compilerOptions.paths,
    },
    { prefix: '<rootDir>/' }
  )
}
module.exports = 'test-file-stub';

するといっこうにfileMockが効かない。。。
2時間くらい格闘したけど、結論pathsToModuleNameMapperの中にいれていたのが間違いで、外に設定すれば動いた。

const { pathsToModuleNameMapper } = require('ts-jest/utils');
const { compilerOptions } = require('./tsconfig.json');

module.exports = {
  moduleNameMapper: {
    "\\.(jpg|jpeg|png|gif|svg)$": ["<rootDir>/src/tests/mocks/fileMock.js"],
    ...pathsToModuleNameMapper(compilerOptions.paths, { prefix: '<rootDir>/' }),
  },
}

pathsToModuleNameMapperのソースコードを見てみるといろんなエスケープ処理が入っていて、tsconfig.jsonのcompilerOptions.paths用に作られていた。(そりゃそうだ)

pathsToModuleNameMapperにいれると↓みたいになっててそりゃ一致しないよねってことでした。

{
  '^\\\\\\.\\(jpg\\|jpeg\\|png\\|gif\\|svg\\)\\$$': '<rootDir>/./src/tests/mocks/fileMock.js',
}