50

I am writing JS UT for my NodeJS code. I am using Chai as the assertion library, and I prefer the should syntax. I also use jslint to check the JS file syntax, even the JS files for UT.

Now I have a problem with jslint and Chai. In Chai, you can use:

myvalue.should.be.true;

But jslint give me:

#1 Expected an assignment or function call and instead saw an expression.

I know jslint comes with many options, but I just cannot find the right one to turn off this check.

David S.
  • 10,578
  • 12
  • 62
  • 104

3 Answers3

74

Just to make it clear to other readers:

You can add /*jshint expr: true*/ to the top of the test files, so it only allows it in the test files.

In the rare case that you use that kind of expressions in your code, you can add the expr: true option to the jshint config options.

Jesús Carrera
  • 11,275
  • 4
  • 63
  • 55
15

You can also use myvalue.should.equal(true) instead.

Beau
  • 11,267
  • 8
  • 44
  • 37
11

It turns our jslint is unable to solve my problem. And due to many restrictions of jslint, I turned to jshint, and the option expr saved me :P

David S.
  • 10,578
  • 12
  • 62
  • 104