Files
openfoodnetwork/spec/javascripts/unit/darkswarm/services/enterprise_registration_spec.js.coffee

86 lines
3.3 KiB
CoffeeScript

describe "EnterpriseRegistrationService", ->
EnterpriseRegistrationService = null
$httpBackend = null
availableCountries = []
enterpriseAttributes =
name: "Enterprise 1"
something: true
spreeApiKey = "keykeykeykey"
CurrentUser =
id: 2
email: 'lalala@email.com'
RegistrationServiceMock =
select: -> null
beforeEach ->
module('Darkswarm')
angular.module('Darkswarm').value 'availableCountries', availableCountries
angular.module('Darkswarm').value 'enterpriseAttributes', enterpriseAttributes
angular.module('Darkswarm').value 'spreeApiKey', spreeApiKey
angular.module('Darkswarm').value 'CurrentUser', CurrentUser
angular.module('Darkswarm').value 'RegistrationService', RegistrationServiceMock
inject ($injector, _$httpBackend_) ->
$httpBackend = _$httpBackend_
EnterpriseRegistrationService = $injector.get("EnterpriseRegistrationService")
it "adds the specified attributes to the ERS enterprise object", ->
expect(EnterpriseRegistrationService.enterprise.name).toBe "Enterprise 1"
expect(EnterpriseRegistrationService.enterprise.something).toBe true
describe "creating an enterprise", ->
describe "success", ->
beforeEach ->
spyOn(RegistrationServiceMock, "select")
$httpBackend.expectPOST("/api/enterprises?token=keykeykeykey").respond 200, 6
EnterpriseRegistrationService.create()
$httpBackend.flush()
it "stores the id of the created enterprise", ->
expect(EnterpriseRegistrationService.enterprise.id).toBe 6
it "moves the user to the about page", ->
expect(RegistrationServiceMock.select).toHaveBeenCalledWith 'about'
describe "failure", ->
beforeEach ->
spyOn(RegistrationServiceMock, "select")
spyOn(window, "alert")
$httpBackend.expectPOST("/api/enterprises?token=keykeykeykey").respond 400, 6
EnterpriseRegistrationService.create()
$httpBackend.flush()
it "alerts the user to failure", ->
expect(window.alert).toHaveBeenCalledWith 'Failed to create your enterprise.\nPlease ensure all fields are completely filled out.'
it "does not move the user to the about page", ->
expect(RegistrationServiceMock.select).not.toHaveBeenCalled
describe "updating an enterprise", ->
beforeEach ->
EnterpriseRegistrationService.enterprise.id = 78
spyOn(RegistrationServiceMock, "select")
describe "success", ->
beforeEach ->
$httpBackend.expectPUT("/api/enterprises/78?token=keykeykeykey").respond 200, 6
EnterpriseRegistrationService.update('step')
$httpBackend.flush()
it "moves the user to the about page", ->
expect(RegistrationServiceMock.select).toHaveBeenCalledWith 'step'
describe "failure", ->
beforeEach ->
spyOn(window, "alert")
$httpBackend.expectPUT("/api/enterprises/78?token=keykeykeykey").respond 400, 6
EnterpriseRegistrationService.update('step')
$httpBackend.flush()
it "alerts the user to failure", ->
expect(window.alert).toHaveBeenCalledWith 'Failed to update your enterprise.\nPlease ensure all fields are completely filled out.'
it "does not move the user to the about page", ->
expect(RegistrationServiceMock.select).not.toHaveBeenCalled