diff --git a/app/assets/javascripts/dialog_field_refresh.js b/app/assets/javascripts/dialog_field_refresh.js index e92107c3f00..9f004f440ba 100644 --- a/app/assets/javascripts/dialog_field_refresh.js +++ b/app/assets/javascripts/dialog_field_refresh.js @@ -15,7 +15,7 @@ var dialogFieldRefresh = { $('#' + fieldName).selectpicker('val', selectedValue); } miqSelectPickerEvent(fieldName, url, {callback: function() { - dialogFieldRefresh.triggerAutoRefresh(fieldId, triggerAutoRefresh || "true"); + dialogFieldRefresh.triggerAutoRefresh(fieldId, triggerAutoRefresh); return true; }}); }, @@ -168,7 +168,7 @@ var dialogFieldRefresh = { triggerAutoRefresh: function(fieldId, trigger) { - if (trigger === "true") { + if (Boolean(trigger) === true) { parent.postMessage({fieldId: fieldId}, '*'); } }, diff --git a/spec/javascripts/dialog_field_refresh_spec.js b/spec/javascripts/dialog_field_refresh_spec.js index 1b9b3e2abc9..97a2c7003d1 100644 --- a/spec/javascripts/dialog_field_refresh_spec.js +++ b/spec/javascripts/dialog_field_refresh_spec.js @@ -423,14 +423,36 @@ describe('dialogFieldRefresh', function() { expect(window.miqSelectPickerEvent).toHaveBeenCalledWith('fieldName', 'url', {callback: jasmine.any(Function)}); }); - it('triggers the auto refresh when the drop down changes', function() { - dialogFieldRefresh.initializeDialogSelectPicker(fieldName, fieldId, selectedValue, url); + it('triggers autorefresh with true only when triggerAutoRefresh arg is true', function() { + dialogFieldRefresh.initializeDialogSelectPicker(fieldName, fieldId, selectedValue, url, 'true'); expect(dialogFieldRefresh.triggerAutoRefresh).toHaveBeenCalledWith(fieldId, 'true'); }); + }); + + describe('#triggerAutoRefresh', function() { + beforeEach(function() { + spyOn(parent, 'postMessage'); + }); + + context('when the trigger passed in falsy', function() { + it('does not post any messages', function() { + dialogFieldRefresh.triggerAutoRefresh(123, ""); + expect(parent.postMessage).not.toHaveBeenCalled(); + }); + }); + + context('when the trigger passed in is the string "true"', function() { + it('posts a message', function() { + dialogFieldRefresh.triggerAutoRefresh(123, "true"); + expect(parent.postMessage).toHaveBeenCalledWith({fieldId: 123}, '*'); + }); + }); - it('triggers autorefresh with "false" when triggerAutoRefresh arg is false', function() { - dialogFieldRefresh.initializeDialogSelectPicker(fieldName, fieldId, selectedValue, url, 'false'); - expect(dialogFieldRefresh.triggerAutoRefresh).toHaveBeenCalledWith(fieldId, 'false'); + context('when the trigger passed in is true', function() { + it('posts a message', function() { + dialogFieldRefresh.triggerAutoRefresh(123, true); + expect(parent.postMessage).toHaveBeenCalledWith({fieldId: 123}, '*'); + }); }); }); -}); \ No newline at end of file +});