Test OrderCycle service create order cycle, use $window for testability

This commit is contained in:
Rohan Mitchell
2012-12-13 14:37:35 +11:00
parent 0f5d51423b
commit 2382de946f
2 changed files with 53 additions and 12 deletions

View File

@@ -41,7 +41,7 @@ angular.module('order_cycle', ['ngResource']).
config(function($httpProvider) {
$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content');
}).
factory('OrderCycle', function($resource) {
factory('OrderCycle', function($resource, $window) {
var OrderCycle = $resource('/admin/order_cycles/:order_cycle_id.json', {},
{'index': { method: 'GET', isArray: true},
'create': { method: 'POST'},
@@ -98,7 +98,7 @@ angular.module('order_cycle', ['ngResource']).
var oc = new OrderCycle({order_cycle: this.order_cycle});
oc.$create(function(data) {
if(data['success']) {
window.location = '/admin/order_cycles';
$window.location = '/admin/order_cycles';
} else {
console.log('fail');
}
@@ -111,7 +111,7 @@ angular.module('order_cycle', ['ngResource']).
var oc = new OrderCycle({order_cycle: this.order_cycle});
oc.$update({order_cycle_id: this.order_cycle.id}, function(data) {
if(data['success']) {
window.location = '/admin/order_cycles';
$window.location = '/admin/order_cycles';
} else {
console.log('fail');
}

View File

@@ -83,13 +83,19 @@ describe 'OrderCycle services', ->
describe 'OrderCycle service', ->
OrderCycle = null
$httpBackend = null
$window = null
beforeEach ->
module('order_cycle')
$window = {navigator: {userAgent: 'foo'}}
module 'order_cycle', ($provide)->
$provide.value('$window', $window)
null
inject ($injector, _$httpBackend_)->
OrderCycle = $injector.get('OrderCycle')
$httpBackend = _$httpBackend_
$httpBackend.expectGET('/admin/order_cycles/123.json').respond
$httpBackend.whenGET('/admin/order_cycles/123.json').respond
id: 123
name: 'Test Order Cycle'
coordinator_id: 456
@@ -97,13 +103,6 @@ describe 'OrderCycle services', ->
{sender_id: 1, receiver_id: 456}
{sender_id: 456, receiver_id: 2}
]
# $httpBackend.expectGET('/admin/order_cycles/987.json').respond
# id: 987
# name: 'Erroring order cycle'
# coordinator_id: 456
# exchanges: [
# {sender_id: 234, receiver_id: 123}
# ]
it 'initialises order cycle', ->
expect(OrderCycle.order_cycle).toEqual
@@ -181,5 +180,47 @@ describe 'OrderCycle services', ->
it 'removes original exchanges array', ->
expect(OrderCycle.order_cycle.exchanges).toEqual(undefined)
describe 'creating an order cycle', ->
it 'redirects to the order cycles page on success', ->
OrderCycle.order_cycle =
incoming_exchanges: [
{enterprise_id: "2", active: true}
{enterprise_id: "7", active: true}
{enterprise_id: "9", active: false}
]
outgoing_exchanges: []
name: "name"
orders_open_at: "2012-12-14 07:30:00"
orders_close_at: "2012-12-22 04:15:00"
coordinator_id: "7"
$httpBackend.expectPOST('/admin/order_cycles.json', {
order_cycle:
incoming_exchanges: [
{enterprise_id:"2",active:true}
{enterprise_id:"7",active:true}
]
outgoing_exchanges:[]
name:"name"
orders_open_at:"2012-12-14 07:30:00"
orders_close_at:"2012-12-22 04:15:00"
coordinator_id:"7"
}).respond {success: true}
OrderCycle.create()
$httpBackend.flush()
expect($window.location).toEqual('/admin/order_cycles')
it 'does not redirect on error', ->
$httpBackend.expectPOST('/admin/order_cycles.json', {
order_cycle:
incoming_exchanges: []
outgoing_exchanges:[]
}).respond {success: false}
OrderCycle.create()
$httpBackend.flush()
expect($window.location).toEqual(undefined)
describe 'OrderCycle directives', ->