From 8cfce57730298a2477006b35e2ab4ceb1cbce810 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 7 Dec 2012 15:30:49 +1100 Subject: [PATCH] Add unit tests for AdminEditOrderCycleCtrl --- .../javascripts/admin/order_cycle.js.erb | 4 +- .../unit/order_cycle_spec.js.coffee | 42 ++++++++++++++++++- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/admin/order_cycle.js.erb b/app/assets/javascripts/admin/order_cycle.js.erb index e8adbfe3f1..d37fb01966 100644 --- a/app/assets/javascripts/admin/order_cycle.js.erb +++ b/app/assets/javascripts/admin/order_cycle.js.erb @@ -17,10 +17,10 @@ function AdminCreateOrderCycleCtrl($scope, OrderCycle, Enterprise) { } -function AdminEditOrderCycleCtrl($scope, OrderCycle, Enterprise) { +function AdminEditOrderCycleCtrl($scope, $location, OrderCycle, Enterprise) { $scope.enterprises = Enterprise.index(); - var order_cycle_id = window.location.pathname.match(/\/admin\/order_cycles\/(\d+)/)[1]; + var order_cycle_id = $location.absUrl().match(/\/admin\/order_cycles\/(\d+)/)[1]; $scope.order_cycle = OrderCycle.load(order_cycle_id); $scope.toggleProducts = function($event, exchange) { diff --git a/spec/javascripts/unit/order_cycle_spec.js.coffee b/spec/javascripts/unit/order_cycle_spec.js.coffee index 45f9156f47..65fada5c11 100644 --- a/spec/javascripts/unit/order_cycle_spec.js.coffee +++ b/spec/javascripts/unit/order_cycle_spec.js.coffee @@ -14,11 +14,12 @@ describe 'OrderCycle controllers', -> addSupplier: jasmine.createSpy('addSupplier') create: jasmine.createSpy('create') Enterprise = - index: jasmine.createSpy('index') + index: jasmine.createSpy('index').andReturn('enterprises list') ctrl = new AdminCreateOrderCycleCtrl(scope, OrderCycle, Enterprise) it 'Loads enterprises', -> expect(Enterprise.index).toHaveBeenCalled() + expect(scope.enterprises).toEqual('enterprises list') it 'Loads order cycles', -> expect(scope.order_cycle).toEqual('my order cycle') @@ -37,6 +38,45 @@ describe 'OrderCycle controllers', -> expect(OrderCycle.create).toHaveBeenCalled() describe 'AdminEditOrderCycleCtrl', -> + ctrl = null + scope = null + location = null + OrderCycle = null + Enterprise = null + + beforeEach -> + scope = {} + location = + absUrl: -> + 'example.com/admin/order_cycles/27/edit' + OrderCycle = + load: jasmine.createSpy('load') + toggleProducts: jasmine.createSpy('toggleProducts') + addSupplier: jasmine.createSpy('addSupplier') + update: jasmine.createSpy('update') + Enterprise = + index: jasmine.createSpy('index').andReturn('enterprises list') + ctrl = new AdminEditOrderCycleCtrl(scope, location, OrderCycle, Enterprise) + + it 'Loads enterprises', -> + expect(Enterprise.index).toHaveBeenCalled() + expect(scope.enterprises).toEqual('enterprises list') + + it 'Loads order cycles', -> + expect(OrderCycle.load).toHaveBeenCalledWith('27') + + it 'Delegates toggleProducts to OrderCycle', -> + scope.toggleProducts('event', 'exchange') + expect(OrderCycle.toggleProducts).toHaveBeenCalledWith('event', 'exchange') + + it 'Adds order cycle suppliers', -> + scope.new_supplier_id = 'new supplier id' + scope.addSupplier('event') + expect(OrderCycle.addSupplier).toHaveBeenCalledWith('event', 'new supplier id') + + it 'Submits the order cycle via OrderCycle update', -> + scope.submit() + expect(OrderCycle.update).toHaveBeenCalled() describe 'OrderCycle services', ->