export const avoidTheAlls = `
<h1>ACOID THE ALLS</h1>
<p style="width: 70%;">
Label your test suites (describe blocks) and specs (it blocks) in a
Prefer beforeEach/afterEach blocks over beforeAll/afterAll ones. The latter are not reset between tests.
</p>

<h3>Why?</h3>
<ul>
    <li>Avoids accidental state leak</li>
    <li>Enforces test independence</li>
    <li>Order of All block execution relative to Each ones is not always obvious</li>
</ul>

<div style="background-color:#444; color:#fff; padding: 16px; position: relative; width: 50%; ">
    <pre>
// Yep
describe('Array.prototype', function() {{'{'}}
    describe('.push(x)', function() {{'{'}}
      beforeEach(function() {{'{'}}
        this.initialArray = [1];

        this.pushResult = this.initialArray.push(2);
      {{'}'}});

      it('appends x to the end of the Array', function() {{'{'}}
        expect(this.initialArray).toEqual([1, 2]);
      {{'}'}});

      it('returns x', function() {{'{'}}
        expect(this.pushResult).toBe(2);
      {{'}'}});
    {{'}'}});
  {{'}'}});

// Nope
describe('Array.prototype', function() {{'{'}}
    describe('.push(x)', function() {{'{'}}
      beforeAll(function() {{'{'}}
        this.initialArray = [1];
      {{'}'}});

      beforeEach(function() {{'{'}}
        this.pushResult = this.initialArray.push(2);
      {{'}'}});

      it('appends x to the end of the Array', function() {{'{'}}
        expect(this.initialArray).toEqual([1, 2]);
      {{'}'}});

      it('returns x', function() {{'{'}}
        expect(this.pushResult).toBe(2);
      {{'}'}});
    {{'}'}});
  {{'}'}});
    </pre>
</div>
`;
