 	
 describe "ActionWatcher with Action",
 {
-	"given ActionWatcher of an Action with a description": ->
+	"given an ActionWatcher of an Action with a description": ->
 		@action = new Witness.Action (->), [], "description"
 		@watcher = new Witness.ViewModels.ActionWatcher @action
 


describe "ActionWatcher with AsyncAction",
{
	given: ->
		@action = new Witness.AsyncAction (-> @done()), [], "action-name"
		@watcher = new Witness.ViewModels.ActionWatcher @action


			description: should.be "description"
},
{
	"given an ActionWatcher where the action throws an error": ->
		@action = new Witness.Action (-> throw new Error "action failed")
		@watcher = new Witness.ViewModels.ActionWatcher @action

	"when it is run": ->
		@action.run {}, (->), (->)

	then:
		watcher: should.haveStatus "failed"
},
{
	"given an ActionWatcher where the action passes": ->
		@action = new Witness.Action (->)
		@watcher = new Witness.ViewModels.ActionWatcher @action

	"when it is run": ->
		@action.run {}, (->), (->)

	then:
		watcher: should.haveStatus "passed"
},
{
	"given an ActionWatcher that has been run": ->
		@action = new Witness.Action (->)
		@watcher = new Witness.ViewModels.ActionWatcher @action
		@action.run {}, (->), (->)

	"when it is reset": ->
		@watcher.reset()

	then:
