Motonary / Fortuna

0 stars 0 forks source link

Hook jest to pre-push #113

Closed bokusunny closed 5 years ago

bokusunny commented 5 years ago

概要

tsのテストをpre-pushにフックさせる

関連Issue

resolve #33

詳細

Slackで話していた件とは切り離してここではフックさせる変更だけにしました。

対象ページ

TodoList

特にレビューしてほしいところ

その他

bokusunny commented 5 years ago
  1. タイプチェックするため
  2. これはconfigure({ adapter: new Adapter() })のことを指してる?
rechtburg commented 5 years ago
  1. タイプチェックとは具体的にこのファイルにおいてどの部分のチェックをしなければならないことを指していますか?それはテストにおいても必要なことで、どこに必要ですか?

  2. そうです!

bokusunny commented 5 years ago
  1. tsはコンパイル時にタイプチェックしてくれるしbutton.test.tsみたいな簡素なコンポーネントではそこまで必要ではないかもしれないけど、form.tsみたいに(あとAPI飛ばすactionもか?)きっちり型にはめきれないやつに対してある程度の型的な心理的安全性を担保する効果は期待できるのでは?
  2. これはjestとenzymeの接続というよりはreactとenzymeの接続かな?そして、これはちょっと調べても見つからなかったんだけど、どこかにenzyme.configみたいなの作るんかな?
bokusunny commented 5 years ago

追記: このファイルにおいては、強いて言えばprops(type, style)のタイプチェックでしょうか。

rechtburg commented 5 years ago

型的な心理的安全性

型的な心理安全性をテストに持ち込むということは、それは逆説的にプロダクトのコードに型的な心理安全性が無いということにはならないだろうか。寧ろここで尋ねたかったことは、テストにTSを導入せずとも、ここでの役割はそのコンポーネントの描画が適切に行われて、尚且つ意図した挙動になっているかを確かめることで、タイプをチェックがない方が目的に適っているのではというものでした。

reactとenzymeの接続

接続というよりかは、enzymeをどこで認識させ、またその方法はいかにして行うか、ということで、 恐らく、enzymeの設定をファイルに記述して、jest.configに読み込ませるみたいな作法なのではと思ってます。

bokusunny commented 5 years ago

型的な心理安全性をテストに持ち込むということは、それは逆説的にプロダクトのコードに型的な心理安全性が無いということにはならないだろうか。

Formのany使ってる部分とかは明らかに心理的安全性を損ねているので、そこでピンポイントで崩れを即座に検知できるようにしたほうがいいのではないでしょうか。

寧ろここで尋ねたかったことは、テストにTSを導入せずとも、ここでの役割はそのコンポーネントの描画が適切に行われて、尚且つ意図した挙動になっているかを確かめることで、タイプをチェックがない方が目的に適っているのでは

これを目的にするなら、ts云々とかではなくそもそもフロントでのテストは無くしてstorybookのチェックでいいのでは(個人的にはそれでも全然良いと思う)。

bokusunny commented 5 years ago

ちなみにこんなのがあります。 https://github.com/storybooks/storybook/tree/next/addons/jest

rechtburg commented 5 years ago

フロントでのテストは無くしてstorybookでいいのでは

これはまさに思っていたところで、storybookさえあれば、イベントも扱えるわけで、寧ろ網羅的にコンポーネントをstorybookに記述しさえすればテストと同等の価値を持ちうるのではと思っていた。(これはあくまで現状jestで適切に、即ちコンポーネントの機能テストを記述する知識また技術がないからで、jestが全く不必要という意味ではなく、このプロダクトに今は必要ないという意味です)

bokusunny commented 5 years ago

業務も含めてフロントでのテスト経験がほぼないので先人の知見に頼るしかないのですが

これは概ね一致している気がするので、とりあえずStorybookのみ(jestのaddonはありかも)でいいと思う。 ただ、Formはいつ崩れてもおかしくないので何か手を打ちたいところではあります。

bokusunny commented 5 years ago

今あーだこーだ言っても仕方がないので、とりあえず見切り発車して必要に応じて軌道修正でいいのではないでしょうか。

rechtburg commented 5 years ago
  • Formはいつ崩れてもおかしくないので何か手を打ちたいところ

これは運用中というより寧ろ開発中ということですよね?

今あーだこーだ言っても仕方がないので、とりあえず見切り発車して必要に応じて軌道修正でいいのではないでしょうか。

完全に同意です。あと、フロントとバックの各エンドの責任分離をしっかりして、各々は責任エンド領域の方向性および構造策定に関して一切の権限を持ち、そのレールを敷くということにしませんか。 ということで、なんかグダグダ疑問点を尋ねてきましたが、フロントは一切お任せします。

bokusunny commented 5 years ago

了解です。というわけでとりあえずこのIssueはcloseしてstorybook一本にします。 Backend, Infraの意思決定は任せた。