Fixed issue #2042 - incorrect notification when closing a tab after setting up an object (fixes #2042)
This commit is contained in:
parent
a2c52538be
commit
a960cdf422
4 changed files with 88 additions and 3 deletions
|
@ -753,6 +753,11 @@ class App.Utils
|
|||
changes[dataNowkey] = diff
|
||||
else if _.isObject( dataNow[dataNowkey] ) && _.isObject( dataLast[dataNowkey] )
|
||||
changes = @_formDiffChanges( dataNow[dataNowkey], dataLast[dataNowkey], changes )
|
||||
# fix for issue #2042 - incorrect notification when closing a tab after setting up an object
|
||||
# Ignore the diff if both conditions are true:
|
||||
# 1. current value is the empty string (no user input yet)
|
||||
# 2. no previous value (it's a newly added attribute)
|
||||
else if dataNow[dataNowkey] == '' && !dataLast[dataNowkey]?
|
||||
else
|
||||
changes[dataNowkey] = dataNow[dataNowkey]
|
||||
changes
|
||||
|
|
|
@ -1508,7 +1508,6 @@ test("check form diff", function() {
|
|||
pending_date: '2015-01-28T09:39:00Z',
|
||||
}
|
||||
diff = {
|
||||
owner_id: '',
|
||||
}
|
||||
result = App.Utils.formDiff(dataNow, dataLast)
|
||||
deepEqual(result, diff, 'check form diff')
|
||||
|
@ -1520,7 +1519,6 @@ test("check form diff", function() {
|
|||
}
|
||||
dataLast = {}
|
||||
diff = {
|
||||
owner_id: '',
|
||||
state_ids: ['1','5','6','7'],
|
||||
}
|
||||
result = App.Utils.formDiff(dataNow, dataLast)
|
||||
|
@ -1548,7 +1546,6 @@ test("check form diff", function() {
|
|||
state_ids: ['1','5','7'],
|
||||
}
|
||||
diff = {
|
||||
owner_id: '',
|
||||
state_ids: ['6'],
|
||||
}
|
||||
result = App.Utils.formDiff(dataNow, dataLast)
|
||||
|
@ -1714,6 +1711,30 @@ test("check form diff", function() {
|
|||
deepEqual(result, diff, 'check form diff')
|
||||
|
||||
|
||||
// regression test for issue #2042 - incorrect notification when closing a tab after setting up an object
|
||||
// A newly created attribute will have the empty string as its value, this should be ignored for formDiff comparison
|
||||
dataNow = {
|
||||
test: '',
|
||||
}
|
||||
dataLast = {}
|
||||
diff = {}
|
||||
result = App.Utils.formDiff(dataNow, dataLast)
|
||||
deepEqual(result, diff, 'check form diff for a newly created attribute that is blank')
|
||||
|
||||
|
||||
dataNow = {
|
||||
test: '',
|
||||
}
|
||||
dataLast = {
|
||||
test: '123',
|
||||
}
|
||||
diff = {
|
||||
test: '',
|
||||
}
|
||||
result = App.Utils.formDiff(dataNow, dataLast)
|
||||
deepEqual(result, diff, 'check form diff for setting a previously valid value to blank')
|
||||
|
||||
|
||||
dataNow = {
|
||||
test: '123',
|
||||
ticket: {
|
||||
|
|
|
@ -43,6 +43,7 @@ if [ "$LEVEL" == '1' ]; then
|
|||
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||
rm test/browser/agent_ticket_tag_test.rb
|
||||
rm test/browser/agent_ticket_task_changed_test.rb
|
||||
rm test/browser/agent_ticket_text_module_test.rb
|
||||
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||
rm test/browser/agent_ticket_update1_test.rb
|
||||
|
@ -122,6 +123,7 @@ elif [ "$LEVEL" == '2' ]; then
|
|||
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||
rm test/browser/agent_ticket_tag_test.rb
|
||||
rm test/browser/agent_ticket_task_changed_test.rb
|
||||
# test/browser/agent_ticket_text_module_test.rb
|
||||
# test/browser/agent_ticket_time_accounting_test.rb
|
||||
# test/browser/agent_ticket_update1_test.rb
|
||||
|
@ -201,6 +203,7 @@ elif [ "$LEVEL" == '3' ]; then
|
|||
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||
# test/browser/agent_ticket_tag_test.rb
|
||||
# test/browser/agent_ticket_task_changed_test.rb
|
||||
rm test/browser/agent_ticket_text_module_test.rb
|
||||
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||
rm test/browser/agent_ticket_update1_test.rb
|
||||
|
@ -280,6 +283,7 @@ elif [ "$LEVEL" == '4' ]; then
|
|||
# test/browser/agent_ticket_overview_level1_test.rb
|
||||
# test/browser/agent_ticket_overview_tab_test.rb
|
||||
rm test/browser/agent_ticket_tag_test.rb
|
||||
rm test/browser/agent_ticket_task_changed_test.rb
|
||||
rm test/browser/agent_ticket_text_module_test.rb
|
||||
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||
rm test/browser/agent_ticket_update1_test.rb
|
||||
|
@ -358,6 +362,7 @@ elif [ "$LEVEL" == '5' ]; then
|
|||
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||
rm test/browser/agent_ticket_tag_test.rb
|
||||
rm test/browser/agent_ticket_task_changed_test.rb
|
||||
rm test/browser/agent_ticket_text_module_test.rb
|
||||
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||
rm test/browser/agent_ticket_update1_test.rb
|
||||
|
@ -439,6 +444,7 @@ elif [ "$LEVEL" == '6' ]; then
|
|||
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||
rm test/browser/agent_ticket_tag_test.rb
|
||||
rm test/browser/agent_ticket_task_changed_test.rb
|
||||
rm test/browser/agent_ticket_text_module_test.rb
|
||||
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||
rm test/browser/agent_ticket_update1_test.rb
|
||||
|
|
53
test/browser/agent_ticket_task_changed_test.rb
Normal file
53
test/browser/agent_ticket_task_changed_test.rb
Normal file
|
@ -0,0 +1,53 @@
|
|||
require 'browser_test_helper'
|
||||
|
||||
class AgentTicketTaskChangedTest < TestCase
|
||||
|
||||
# regression test for issue #2042 - incorrect notification when closing a tab after setting up an object
|
||||
def test_detection_of_ticket_update_after_new_attribute
|
||||
@browser = instance = browser_instance
|
||||
login(
|
||||
username: 'master@example.com',
|
||||
password: 'test',
|
||||
url: browser_url,
|
||||
)
|
||||
tasks_close_all()
|
||||
|
||||
ticket = ticket_create(
|
||||
data: {
|
||||
customer: 'nico',
|
||||
group: 'Users',
|
||||
title: 'test ticket',
|
||||
body: 'some body 123äöü',
|
||||
},
|
||||
)
|
||||
|
||||
object_manager_attribute_create(
|
||||
data: {
|
||||
name: 'text_test',
|
||||
display: 'text_test',
|
||||
data_type: 'Text',
|
||||
},
|
||||
)
|
||||
object_manager_attribute_migrate
|
||||
|
||||
ticket_open_by_title(title: 'test ticket')
|
||||
|
||||
# verify the 'Discard your changes' message does not appear (since there are no changes)
|
||||
assert_nil execute(js: "return $('.content.active .js-attributeBar .js-reset:not(\".hide\")').get(0)")
|
||||
|
||||
# try and close the existing open ticket window
|
||||
instance.action.move_to(instance.find_elements(css: '#navigation .tasks .task:first-child')[0]).release.perform
|
||||
instance.find_elements(css: '#navigation .tasks .task:first-child .js-close')[0].click
|
||||
|
||||
sleep 0.5
|
||||
exists_not( css: '.modal')
|
||||
|
||||
object_manager_attribute_delete(
|
||||
data: {
|
||||
name: 'text_test',
|
||||
},
|
||||
)
|
||||
object_manager_attribute_migrate
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue