require '../spec_helper'

describe "Freakset Acceptance", ->

  beforeEach ->
    @freakset = new Freakset()
    @set = null
    @result = false
    @result2 = false


  it 'should emit scoped before events during compilation', ->

    @freakset.on 'before:scope:step1', (set, actor) =>
      @result = true

    @freakset.step "scope:step1", (set) ->
      set.commit()

    @set = @freakset.compile {}

    waitsFor -> !@set.isRunning()

    runs ->
      expect(@result).toBe true


  it 'should emit scoped around events during compilation', ->

    @freakset.on 'around:scope:step1', (set, actor, cb) =>
      cb()
      @result = true

    @freakset.step "scope:step1", (set) ->
      set.commit()

    @set = @freakset.compile {}

    waitsFor -> !@set.isRunning()

    runs ->
      expect(@result).toBe true


  it 'should emit scoped after events during compilation', ->

    @freakset.on 'after:scope:step1', (set, actor) =>
      @result = true

    @freakset.step "scope:step1", (set) ->
      set.commit()

    @set = @freakset.compile {}

    waitsFor -> !@set.isRunning()

    runs ->
      expect(@result).toBe true
