diff --git a/app/assets/javascripts/admin/order_cycles/controllers/simple_edit.js.coffee b/app/assets/javascripts/admin/order_cycles/controllers/simple_edit.js.coffee index 728b27fb4a..e2a60e424e 100644 --- a/app/assets/javascripts/admin/order_cycles/controllers/simple_edit.js.coffee +++ b/app/assets/javascripts/admin/order_cycles/controllers/simple_edit.js.coffee @@ -1,19 +1,21 @@ angular.module('admin.order_cycles').controller "AdminSimpleCreateOrderCycleCtrl", ($scope, OrderCycle, Enterprise, EnterpriseFee) -> $scope.enterprises = Enterprise.index (enterprises) => + $scope.init(enterprises) + $scope.enterprise_fees = EnterpriseFee.index() + $scope.order_cycle = OrderCycle.order_cycle + + $scope.init = (enterprises) -> enterprise = enterprises[Object.keys(enterprises)[0]] OrderCycle.addSupplier enterprise.id OrderCycle.addDistributor enterprise.id $scope.outgoing_exchange = OrderCycle.order_cycle.outgoing_exchanges[0] + # All variants start as checked OrderCycle.setExchangeVariants(OrderCycle.order_cycle.incoming_exchanges[0], Enterprise.suppliedVariants(enterprise.id), true) OrderCycle.order_cycle.coordinator_id = enterprise.id - $scope.enterprise_fees = EnterpriseFee.index() - - $scope.order_cycle = OrderCycle.order_cycle - $scope.loaded = -> Enterprise.loaded && EnterpriseFee.loaded diff --git a/spec/javascripts/unit/admin/order_cycles/controllers/simple_edit.js.coffee b/spec/javascripts/unit/admin/order_cycles/controllers/simple_edit.js.coffee new file mode 100644 index 0000000000..bf2498e234 --- /dev/null +++ b/spec/javascripts/unit/admin/order_cycles/controllers/simple_edit.js.coffee @@ -0,0 +1,49 @@ +describe "AdminSimpleCreateOrderCycleCtrl", -> + ctrl = null + scope = {} + OrderCycle = {} + Enterprise = {} + EnterpriseFee = {} + incoming_exchange = {} + outgoing_exchange = {} + + beforeEach -> + scope = {} + OrderCycle = + order_cycle: + incoming_exchanges: [incoming_exchange] + outgoing_exchanges: [outgoing_exchange] + addSupplier: jasmine.createSpy() + addDistributor: jasmine.createSpy() + setExchangeVariants: jasmine.createSpy() + Enterprise = + index: jasmine.createSpy() + suppliedVariants: jasmine.createSpy().andReturn('supplied variants') + EnterpriseFee = + index: jasmine.createSpy() + + module('admin.order_cycles') + inject ($controller) -> + ctrl = $controller 'AdminSimpleCreateOrderCycleCtrl', {$scope: scope, OrderCycle: OrderCycle, Enterprise: Enterprise, EnterpriseFee: EnterpriseFee} + + describe "initialisation", -> + enterprise = {id: 123} + enterprises = {123: enterprise} + + beforeEach -> + scope.init(enterprises) + + it "sets up an incoming and outgoing exchange", -> + expect(OrderCycle.addSupplier).toHaveBeenCalledWith(enterprise.id) + expect(OrderCycle.addDistributor).toHaveBeenCalledWith(enterprise.id) + expect(scope.outgoing_exchange).toEqual outgoing_exchange + + it "selects all variants", -> + expect(Enterprise.suppliedVariants). + toHaveBeenCalledWith(enterprise.id) + + expect(OrderCycle.setExchangeVariants). + toHaveBeenCalledWith(incoming_exchange, 'supplied variants', true) + + it "sets the coordinator", -> + expect(OrderCycle.order_cycle.coordinator_id).toEqual enterprise.id \ No newline at end of file