53461


[Vue Test Utilsのcontains(selector)の章](https://vue-test-
utils.vuejs.org/ja/api/wrapper/#contains-
selector)と、[Chaiの.trueの章](https://www.chaijs.com/api/bdd/#method_true)を読んで、以下のようなテストを書いたのですが、ESLintに怒られてしまいました。  
[ESLintのDisallow Unused Expressions (no-unused-
expressions)のページ](https://eslint.org/docs/rules/no-unused-
expressions)を読んだのですが、よくわかりません、  
どう直せばいいのでしょうか。  
なお、テスト自体は成功します。

コード：

[code]

    import { shallowMount } from '@vue/test-utils'
    import Foo from './Foo.vue'
    import Bar from './Bar.vue'
    
    const wrapper = shallowMount(Foo)
    expect(wrapper.contains(Bar)).to.be.true
    
[/code]

ESLint：

[code]

    > expect(wrapper.contains(Bar)).to.be.true
    
    Expected an assignment or function call and instead saw an expression.eslint(no-unused-expressions)
    
[/code]


CC BY-SA 4.0
2019-03-16T01:07:19.980
53459
2023-09-03T10:07:19.560
2023-09-03T10:07:19.560
19110
13492
question
javascript vue.js テスト eslint
ESLintのno-unused-expressionsの直し方


chaiとESLintのno-unused-expressionsルールは相性が悪く、chaiを使おうとするとどうしてもno-unused-
expressionsに引っかかってしまいます、そこで、chaiを使う場合は後者を無効にする必要があります。そのためには、テストコードの先頭に次のコメントを書くとよいです。

[code]

    /* eslint no-unused-expressions: "off" */
    
[/code]

これは、そのファイル内でESLintによるno-unused-
expressionsのチェックを無効にするという指示です。この記法については、[ドキュメントのここに説明があります](https://eslint.org/docs/user-
guide/configuring#using-configuration-comments)。

* * *

ファイル全体で無効になるのがまずい場合は、`eslint-disable-next-
line`コメントを次のようにchaiを使っている行の前に置く方法もあります（[説明はこの辺です](https://eslint.org/docs/user-
guide/configuring#disabling-rules-with-inline-comments)）。

[code]

    // eslint-disable-next-line no-unused-expressions
    expect(wrapper.contains(Bar)).to.be.true
    
[/code]

* * *

さらに、テストファイルが多くある場合は、ファイルごとにコメントを書くのではなく設定ファイルの指により一括で無効にすることもできます。[ドキュメントのここの記述がほぼそのまま適用可能です](https://eslint.org/docs/user-
guide/configuring#disabling-rules-only-for-a-group-of-files)（以下に引用）。

[code]

    {
      "rules": {...},
      "overrides": [
        {
          "files": ["*-test.js","*.spec.js"],
          "rules": {
            "no-unused-expressions": "off"
          }
        }
      ]
    }
    
[/code]


CC BY-SA 4.0
2019-03-16T01:54:10.247
53461
2019-03-16T02:16:30.863
2019-03-16T02:16:30.863
30079
30079
53459
answer