describe('Throws matcher', () => {
  var throws = new purespec.matchers.Throws('Missing name')

  describe('.prototype.constructor()', () => {
    it('returns a new Throws with the given exception', () => {
      assert.deepEqual(throws.exception, 'Missing name')
    })
  })

  describe('.prototype.run()', () => {
    it('asserts its subject throws an exception matching its exception', () => {
      assert.deepStrictEqual(throws.run(example.hello.sync), new purespec.Result(throws, {
        actual: new Error('Missing name'),
        expected: new Error('Missing name')
      }))
    })
  })

  describe('.prototype.toString()', () => {
    it('returns a String representation with its exception', () => {
      assert.deepEqual(throws.toString(), 'throws Missing name')
    })
  })
})

@@ -317,74 +317,109 @@
     
-it('asserts its subject throws an exception matching its exception
+context('given a subject that throws the given exception', () =%3E %7B%0A      it('returns a passing Result
 ', (
@@ -417,32 +417,34 @@
 esult', () =%3E %7B%0A
+  
       assert.dee
@@ -526,16 +526,18 @@
         
+  
 actual: 
@@ -571,16 +571,18 @@
         
+ 
+ 
 expected
@@ -615,18 +615,308 @@
 )%0A      
+  %7D))%0A      %7D)%0A    %7D)%0A%0A    context('given a subject that doesn%5C't throw an exception', () =%3E %7B%0A      var subject = () =%3E 1%0A%0A      it('returns a failing Result', () =%3E %7B%0A        assert.deepStrictEqual(throws.run(subject), new purespec.Result(throws, %7B%0A          error: true%0A        %7D))%0A      
 %7D
-)
 )%0A    %7D)

Test Throws.prototype.run() given a subject that doesn't throw