#= require angular/payrollhero_api/ph_restangular.coffee

describe 'angular:payrollhero.api.service(TimeClockingsService)', ->
  subject = undefined
  httpBackend = undefined

  doNotExpectFailure = (error) ->
    console.error(error)
    throw "promise threw unexpected failure!"

  setupClockingsResponse = ->
    httpBackend.expectPOST('http://time.payrollhero.dev/api/v2/clockings?token=t0ken')
    .respond({clocking: { id: 1 } })

  beforeEach ->
    module 'payrollhero.api'
    angular.module('payrollhero.api').constant('PhToken', {token: 't0ken'});

  beforeEach inject (TimeClockingsService, $httpBackend) ->
    subject = TimeClockingsService
    httpBackend = $httpBackend
    return

  afterEach ->
    httpBackend.verifyNoOutstandingExpectation()
    httpBackend.verifyNoOutstandingRequest()

  describe '#post', ->
    beforeEach ->
      setupClockingsResponse()
      return

    it 'posts a clocking', ->
      subject.post({
        clocking: {
          account_id: 1,
          employee_id: 1,
          "kind": "clock_in",
          "client_time": "1395106884",
          "latitude": "-98.1234",
          "longitude": "165.4321",
          "ip_address": "174.7.251.60",
          "worksite_id": "100",
          "scheduled_in_time": "1395106884",
          "scheduled_out_time": "1395107884"
        }
      })
      .catch(doNotExpectFailure)
      httpBackend.flush()
