It is very easy to write incomplete assertions when using some test frameworks. This rule enforces complete Chai assertions in the following cases: * when ``++assert.fail++``, ``++expect.fail++`` or ``++should.fail++`` are present but not called. * when an ``++expect(...)++`` or ``++should++`` assertion is not followed by an assertion method, such as ``++equal++``. * when an ``++expect++`` or ``++should++`` assertion ends with a https://www.chaijs.com/api/bdd/#method_language-chains[chainable getters], such as ``++.that++``, or a modifier, such as ``++.deep++``. * when an ``++expect++`` or ``++should++`` assertion function, such as ``++.throw++``, is not called. In such cases, what is intended to be a test doesn't actually verify anything == Noncompliant Code Example ---- const assert = require('chai').assert; const expect = require('chai').expect; describe("incomplete assertions", function() { const value = 42; it("uses chai 'assert'", function() { assert.fail; // Noncompliant }); it("uses chai 'expect'", function() { expect(1 == 1); // Noncompliant expect(value.toString).to.throw; // Noncompliant }); }); ---- == Compliant Solution ---- const assert = require('chai').assert; const expect = require('chai').expect; describe("incomplete assertions", function() { const value = 42; it("uses chai 'assert'", function() { assert.fail(); }); it("uses chai 'expect'", function() { expect(1).to.equal(1); expect(value.toString).throw(TypeError); }); }); ---- ifdef::rspecator-view[] == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::rspecator-view[]