pulsar/spec/task-spec.coffee

60 lines
1.8 KiB
CoffeeScript
Raw Normal View History

2013-09-18 05:58:41 +04:00
Task = require '../src/task'
2015-02-19 22:16:50 +03:00
Grim = require 'grim'
2013-06-13 01:09:22 +04:00
describe "Task", ->
2013-06-15 03:09:38 +04:00
describe "@once(taskPath, args..., callback)", ->
it "terminates the process after it completes", ->
handlerResult = null
2013-09-18 03:15:53 +04:00
task = Task.once require.resolve('./fixtures/task-spec-handler'), (result) ->
2013-06-15 03:09:38 +04:00
handlerResult = result
processClosed = false
processErrored = false
childProcess = task.childProcess
spyOn(childProcess, 'kill').andCallThrough()
task.childProcess.on 'error', -> processErrored = true
waitsFor ->
handlerResult?
runs ->
expect(handlerResult).toBe 'hello'
expect(childProcess.kill).toHaveBeenCalled()
expect(processErrored).toBe false
it "calls listeners registered with ::on when events are emitted in the task", ->
task = new Task(require.resolve('./fixtures/task-spec-handler'))
eventSpy = jasmine.createSpy('eventSpy')
task.on("some-event", eventSpy)
waitsFor (done) -> task.start(done)
runs ->
expect(eventSpy).toHaveBeenCalledWith(1, 2, 3)
it "unregisters listeners when the Disposable returned by ::on is disposed", ->
task = new Task(require.resolve('./fixtures/task-spec-handler'))
eventSpy = jasmine.createSpy('eventSpy')
disposable = task.on("some-event", eventSpy)
disposable.dispose()
waitsFor (done) -> task.start(done)
runs ->
expect(eventSpy).not.toHaveBeenCalled()
2015-02-19 22:16:50 +03:00
it "reports deprecations in tasks", ->
jasmine.snapshotDeprecations()
2015-02-20 01:53:15 +03:00
handlerPath = require.resolve('./fixtures/task-handler-with-deprecations')
task = new Task(handlerPath)
2015-02-19 22:16:50 +03:00
waitsFor (done) -> task.start(done)
runs ->
deprecations = Grim.getDeprecations()
expect(deprecations.length).toBe 1
2015-02-20 01:53:15 +03:00
expect(deprecations[0].getStacks()[0][1].fileName).toBe handlerPath
2015-02-19 22:16:50 +03:00
jasmine.restoreDeprecationsSnapshot()