alert_definitions_controller_test.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. var App = require('app');
  19. require('controllers/main/alert_definitions_controller');
  20. require('models/alerts/alert_definition');
  21. var testHelpers = require('test/helpers');
  22. var controller;
  23. describe('App.MainAlertDefinitionsController', function() {
  24. beforeEach(function() {
  25. controller = App.MainAlertDefinitionsController.create();
  26. });
  27. describe('#toggleDefinitionState', function() {
  28. beforeEach(function() {
  29. controller.reopen({
  30. content: [
  31. App.AlertDefinition.createRecord({id: 1, enabled: true})
  32. ]
  33. });
  34. });
  35. it('should do ajax-request', function() {
  36. var alertDefinition = controller.get('content')[0];
  37. controller.toggleDefinitionState(alertDefinition);
  38. var args = testHelpers.findAjaxRequest('name', 'alerts.update_alert_definition');
  39. expect(args).to.exists;
  40. });
  41. });
  42. describe('#isCriticalAlerts', function () {
  43. beforeEach(function () {
  44. controller.set('content', Em.A([
  45. Em.Object.create({summary: {CRITICAL: {count: 0}}}),
  46. Em.Object.create({summary: {CRITICAL: {}}})
  47. ]));
  48. });
  49. it('if summary is undefined, 0 should be used', function () {
  50. expect(controller.get('isCriticalAlerts')).to.be.false;
  51. });
  52. it('should be true, if some CRITICAL count is greater than 0', function () {
  53. controller.get('content').pushObject(Em.Object.create({summary: {CRITICAL: {count: 1}}}));
  54. expect(controller.get('isCriticalAlerts')).to.be.true;
  55. });
  56. });
  57. describe("#toggleState()", function() {
  58. beforeEach(function() {
  59. sinon.stub(App, 'showConfirmationFeedBackPopup', Em.clb);
  60. sinon.stub(controller, 'toggleDefinitionState');
  61. });
  62. afterEach(function() {
  63. App.showConfirmationFeedBackPopup.restore();
  64. controller.toggleDefinitionState.restore();
  65. });
  66. it("toggleDefinitionState should be called", function() {
  67. var def = Em.Object.create();
  68. controller.toggleState({context: def});
  69. expect(App.showConfirmationFeedBackPopup.calledOnce).to.be.true;
  70. expect(controller.toggleDefinitionState.calledWith(def)).to.be.true;
  71. });
  72. });
  73. });