Closed mozisan closed 1 year ago
まだ読み進めたり動作検証してたりする途中ですが、少なくともテスト環境と実際の環境で実行結果が異なる点を1つ見つけました。
以下のgetImmediateAliasedSymbol()
の返り値がテスト環境ではundefined
となり、実際の環境ではSymbol
が得られています。
https://github.com/uhyo/eslint-plugin-import-access/blob/master/src/rules/jsdoc.ts#L152-L155
@mozisan こちらの検証ありがとうございます。とても助かります。 🥺
以下の
getImmediateAliasedSymbol()
の返り値がテスト環境ではundefined
となり、実際の環境ではSymbol
が得られています。
こちらの問題について調べたところ、テスト環境ではそもそも import path from "path"
に型エラーが起きているためそこが undefined
になっているようです。テスト用のtsconfig.jsonに次の修正を加えると挙動が一致します。
"esModuleInterop": true
@uhyo なるほど!!!!こちらこそありがとうございます:bow:
@uhyo (cc @seito2 ) ご指摘いただきありがとうございます! テストも挙動が一致することを確認できましたので、これでPRを出させていただきます:pray: 最後の2コミットで少しリファクタもしてみましたが、確認のノイズになるようであればこれらのコミットはなくします! (リファクタした点とその意図はコメントとして残しました)
import path from 'path';
がエラーになる件について、簡単ではありますが修正案を出します。ただ、テストで動作確認していたところ、そもそも修正を入れずとも現行のコードで
import path from 'path';
は「テスト上は」エラーになりませんでした。 (ただ実際のコードベースで動作させると報告にあったようなエラーは確認できました。)このPRで加えた変更により、実際のコードベースでのエラーも解消するのは確認できましたが、実際の環境での結果とテスト環境での結果が一致しないのはどうなんだろうと思い、一旦DraftとしてPRを出してみます。
何かこのあたり原因に検討つきますでしょうか・・・? (
defaultImportability
という素晴らしいオプションを実装してくださった @seito2 さんももしかしたらこの件に取り組まれているかもしれないので、周知の意味を込めてちょっとメンションさせていただきます:bow:)