it('should pass data into the dataSubject', inject([SendPageDataService], (service: SendPageDataService) => { spyOn(service.dataSubject, 'next').and.stub() service.dataBundle = this.testDataBundle service.dataStored = false service.getData() expect(service.dataSubject.next).not.toHaveBeenCalled() service.dataStored = true service.getData() expect(service.dataSubject.next).toHaveBeenCalledWith(service.dataBundle) }));
it('shouldn\'t broadcast data after clearing if told not to', inject([SendPageDataService], (service: SendPageDataService) => { this.blankBundle = service.dataBundle service.dataBundle = this.testDataBundle //fill with data spyOn(service.dataSubject, 'next').and.stub() service.clearData(false) expect(service.dataBundle).toEqual({errors: []}) expect(service.dataSubject.next).not.toHaveBeenCalled() }));
describe('workspace-project App', () => { let page: AppPage; beforeEach(() => { page = new AppPage(); }); it('should display welcome message', () => { page.navigateTo(); expect(page.getTitleText()).toEqual('Welcome to orders!'); }); afterEach(async () => { // Assert that there are no errors emitted from the browser const logs = await browser.manage().logs().get(logging.Type.BROWSER); expect(logs).not.toContain(jasmine.objectContaining({ level: logging.Level.SEVERE, })); }); });
it('Should add multiple error interceptors', function() { $httpBackend.expectGET('/error'); var CallbackManager = function() {}; CallbackManager.successCallback = function() { expect(CallbackManager.successCallback).not.toHaveBeenCalled(); }; CallbackManager.errorCallback = function() { expect(CallbackManager.firstErrorInterceptor).toHaveBeenCalled(); expect(CallbackManager.secondErrorInterceptor).toHaveBeenCalled(); }; CallbackManager.firstErrorInterceptor = function() {}; CallbackManager.secondErrorInterceptor = function() {}; spyOn(CallbackManager, 'successCallback').and.callThrough(); spyOn(CallbackManager, 'firstErrorInterceptor').and.callThrough(); spyOn(CallbackManager, 'secondErrorInterceptor').and.callThrough(); Restangular.addErrorInterceptor(CallbackManager.firstErrorInterceptor); Restangular.addErrorInterceptor(CallbackManager.secondErrorInterceptor); Restangular.all('error').getList() .then(CallbackManager.successCallback) .catch(CallbackManager.errorCallback); $httpBackend.flush(); });
it('Should add multiple error interceptors but don\'t reject the promise if one of them returns false', function() { $httpBackend.expectGET('/error'); var CallbackManager = function() {}; CallbackManager.successCallback = function() { expect(CallbackManager.successCallback).not.toHaveBeenCalled(); }; CallbackManager.errorCallback = function() { expect(CallbackManager.errorCallback).not.toHaveBeenCalled(); }; CallbackManager.firstErrorInterceptor = function() { return true; }; CallbackManager.secondErrorInterceptor = function() { return false; // prevent promise to be rejected }; spyOn(CallbackManager, 'successCallback').and.callThrough(); spyOn(CallbackManager, 'errorCallback').and.callThrough(); Restangular.addErrorInterceptor(CallbackManager.firstErrorInterceptor); Restangular.addErrorInterceptor(CallbackManager.secondErrorInterceptor); Restangular.all('error').getList() .then(CallbackManager.successCallback) .catch(CallbackManager.errorCallback); $httpBackend.flush(); });
it('should validate if a databundle\'s address is valid', inject([SendPageDataService], (service: SendPageDataService) => { spyOn(service, 'pushError').and.stub() spyOn(service, 'checkAddressIsValid').and.callFake( (str) => {return str ? true : false}) let mockDataBundle = { destAddr: 'to the moon!', estConvToNav: 0, changellyFeeOne: 0, errors: [] } // destAddr IS valid service.validateDataBundle(mockDataBundle) expect(service.pushError).not.toHaveBeenCalled() // destAddr IS NOT valid mockDataBundle.destAddr = undefined service.validateDataBundle(mockDataBundle) expect(service.pushError).toHaveBeenCalledWith(mockDataBundle, 'invalidDestAddress') }));
expect(copiedAccount).not.toBe(accountsModel[0]);
var rule = new CanDeleteProductRule(productId, orderService); rule.validate((err) => { expect(err).not.toBeNull(); }); });
var command = new ShipOrderItemCommand(1, orderItemDataProxy, new InventoryItemService(inventoryItemDataProxy)); command.execute((err, result) => { expect(inventoryItemDataProxy.update).not.toHaveBeenCalled(); }); });
service.insertCommand({}).execute((err, result) => { expect(result.errors.length).toEqual(5); expect(productDataProxy.getById).not.toHaveBeenCalled(); }); }); service.insertCommand(item).execute((err, result) => { expect(result.errors.length).toEqual(3); expect(productDataProxy.getById).not.toHaveBeenCalled(); }); });
it('Should add multiple error interceptors for a single get too', function() { $httpBackend.expectGET('/error/404'); var CallbackManager = function() {}; CallbackManager.successCallback = function() { expect(CallbackManager.successCallback).not.toHaveBeenCalled(); }; CallbackManager.errorCallback = function() { expect(CallbackManager.firstErrorInterceptor).toHaveBeenCalled(); expect(CallbackManager.secondErrorInterceptor).toHaveBeenCalled(); }; CallbackManager.firstErrorInterceptor = function(response) { expect(Number(response.status)).toEqual(404); }; CallbackManager.secondErrorInterceptor = function() {}; spyOn(CallbackManager, 'successCallback').and.callThrough(); spyOn(CallbackManager, 'firstErrorInterceptor').and.callThrough(); spyOn(CallbackManager, 'secondErrorInterceptor').and.callThrough(); Restangular.addErrorInterceptor(CallbackManager.firstErrorInterceptor); Restangular.addErrorInterceptor(CallbackManager.secondErrorInterceptor); Restangular.one('error', 404).get() .then(CallbackManager.successCallback) .catch(CallbackManager.errorCallback); $httpBackend.flush(); });
var rule = new CanDeleteCategoryRule(categoryId, productService); rule.validate((err) => { expect(err).not.toBeNull(); }); });
it('should validate if a databundle\'s transferAmount is too large', inject([SendPageDataService], (service: SendPageDataService) => { //transfer amount IS NOT too large spyOn(service, 'pushError').and.stub() spyOn(service, 'checkAddressIsValid').and.returnValue(true) let mockDataBundle = { destAddr: 'NavHQ', estConvToNav: 0, changellyFeeOne: 0, errors: [] } service.validateDataBundle(mockDataBundle) expect(service.pushError).not.toHaveBeenCalled() //transfer amount IS too large mockDataBundle.estConvToNav = 99999 service.validateDataBundle(mockDataBundle) expect(service.pushError).toHaveBeenCalledWith(mockDataBundle, 'transferTooLarge') }));
var rule = new CanDeleteCustomerRule(customerId, orderService); rule.validate((err) => { expect(err).not.toBeNull(); }); });