describe('the stack spec', () => {
  it('shows the infrastructure works', () => {
    true.should.be.true();
  });

  const makeStack = () => {
    return {
      isEmpty: () => true,
      size: () => 0
    };
  };

  let stack = {
    isEmpty: () => true,
    size: () => 0
  };

  describe('a stack should', () => {
    it('start empty', () => {
      stack = makeStack();
      stack.isEmpty().should.be.true();
    });

    it('start with stack size 0', () => {
      stack = makeStack();
      stack.size().should.equal(0);
    });

    it('not be empty when pushed');

    it('leave stack size 1 when pushed');

    it('leave stack empty when pushed and popped');

    it('leave stack size 0 when pushed and popped');

    it('overflow');

    it('underflow');

    it('pop the same one pushed');

    it('pop the same two pushed');

    it('accept only positive capacity');
  });
}
);

@@ -320,26 +320,19 @@
     
-it('start empty', 
+beforeEach(
 () =
@@ -354,32 +354,71 @@
  = makeStack();%0A
+    %7D);%0A%0A    it('start empty', () =%3E %7B%0A
       stack.isEm
@@ -496,35 +496,8 @@
 %3E %7B%0A
-      stack = makeStack();%0A
     

refactor toward next test