mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Specing out enterprise registration service properly
This commit is contained in:
@@ -11,49 +11,47 @@ Darkswarm.factory "EnterpriseRegistrationService", ($http, RegistrationService,
|
||||
@enterprise[key] = value
|
||||
|
||||
create: =>
|
||||
# Loading.message = "Creating " + @enterprise.name
|
||||
# $http(
|
||||
# method: "POST"
|
||||
# url: "/api/enterprises"
|
||||
# data:
|
||||
# enterprise: @prepare()
|
||||
# params:
|
||||
# token: spreeApiKey
|
||||
# ).success((data) =>
|
||||
# Loading.clear()
|
||||
# @enterprise.id = data
|
||||
# RegistrationService.select('about')
|
||||
# ).error((data) =>
|
||||
# Loading.clear()
|
||||
# console.log angular.toJson(data)
|
||||
# alert('Failed to create your enterprise.\nPlease ensure all fields are completely filled out.')
|
||||
# )
|
||||
RegistrationService.select('about')
|
||||
Loading.message = "Creating " + @enterprise.name
|
||||
$http(
|
||||
method: "POST"
|
||||
url: "/api/enterprises"
|
||||
data:
|
||||
enterprise: @prepare()
|
||||
params:
|
||||
token: spreeApiKey
|
||||
).success((data) =>
|
||||
Loading.clear()
|
||||
@enterprise.id = data
|
||||
RegistrationService.select('about')
|
||||
).error((data) =>
|
||||
Loading.clear()
|
||||
alert('Failed to create your enterprise.\nPlease ensure all fields are completely filled out.')
|
||||
)
|
||||
# RegistrationService.select('about')
|
||||
|
||||
update: (step) =>
|
||||
# Loading.message = "Updating " + @enterprise.name
|
||||
# $http(
|
||||
# method: "PUT"
|
||||
# url: "/api/enterprises/#{@enterprise.id}"
|
||||
# data:
|
||||
# enterprise: @prepare()
|
||||
# params:
|
||||
# token: spreeApiKey
|
||||
# ).success((data) ->
|
||||
# Loading.clear()
|
||||
# RegistrationService.select(step)
|
||||
# ).error((data) ->
|
||||
# Loading.clear()
|
||||
# console.log angular.toJson(data)
|
||||
# alert('Failed to update your enterprise.\nPlease ensure all fields are completely filled out.')
|
||||
# )
|
||||
RegistrationService.select(step)
|
||||
Loading.message = "Updating " + @enterprise.name
|
||||
$http(
|
||||
method: "PUT"
|
||||
url: "/api/enterprises/#{@enterprise.id}"
|
||||
data:
|
||||
enterprise: @prepare()
|
||||
params:
|
||||
token: spreeApiKey
|
||||
).success((data) ->
|
||||
Loading.clear()
|
||||
RegistrationService.select(step)
|
||||
).error((data) ->
|
||||
Loading.clear()
|
||||
alert('Failed to update your enterprise.\nPlease ensure all fields are completely filled out.')
|
||||
)
|
||||
# RegistrationService.select(step)
|
||||
|
||||
prepare: =>
|
||||
enterprise = {}
|
||||
excluded = [ 'address', 'country', 'id' ]
|
||||
for key, value of @enterprise when key not in excluded
|
||||
enterprise[key] = value
|
||||
enterprise.address_attributes = @enterprise.address
|
||||
enterprise.address_attributes.country_id = @enterprise.country.id
|
||||
enterprise.address_attributes = @enterprise.address if @enterprise.address?
|
||||
enterprise.address_attributes.country_id = @enterprise.country.id if @enterprise.country?
|
||||
enterprise
|
||||
@@ -1,5 +1,6 @@
|
||||
describe "EnterpriseRegistrationService", ->
|
||||
EnterpriseRegistrationService = null
|
||||
$httpBackend = null
|
||||
availableCountries = []
|
||||
enterpriseAttributes =
|
||||
name: "Enterprise 1"
|
||||
@@ -8,6 +9,8 @@ describe "EnterpriseRegistrationService", ->
|
||||
CurrentUser =
|
||||
id: 2
|
||||
email: 'lalala@email.com'
|
||||
RegistrationServiceMock =
|
||||
select: -> null
|
||||
|
||||
beforeEach ->
|
||||
module('Darkswarm')
|
||||
@@ -15,10 +18,68 @@ describe "EnterpriseRegistrationService", ->
|
||||
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)->
|
||||
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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user