Skip to content

Commit 0c9f8b3

Browse files
committed
Use vanilla JS in spec as much as possible
1 parent 4337c1d commit 0c9f8b3

9 files changed

Lines changed: 33 additions & 35 deletions

spec/integration/fields/belongs_to_association_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@
6262
it 'allows update', js: true do
6363
visit edit_path(model_name: 'managed_team', id: teams[0].id)
6464
find('input.ra-filtering-select-input').set('M')
65-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
65+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
6666
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
67-
page.execute_script %{$('ul.ui-autocomplete li.ui-menu-item a:contains("ManagingUser ##{users[1].id}")').trigger('mouseenter').click()}
67+
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("ManagingUser ##{users[1].id}")).click()}
6868
click_button 'Save'
6969
teams[0].reload
7070
expect(teams[0].user).to eq users[1]

spec/integration/fields/has_many_association_spec.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,6 @@
175175
it 'allows update', js: true do
176176
visit edit_path(model_name: 'managing_user', id: user.id)
177177
find('input.ra-multiselect-search').set('T')
178-
page.execute_script("$('input.ra-multiselect-search').trigger('focus')")
179-
page.execute_script("$('input.ra-multiselect-search').trigger('keydown')")
180178
find('.ra-multiselect-collection option', text: teams[1].name).select_option
181179
find('.ra-multiselect-item-add').click
182180
click_button 'Save'

spec/integration/fields/has_one_association_spec.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,9 @@
8787
it 'allows update', js: true do
8888
visit edit_path(model_name: 'managing_user', id: user.id)
8989
find('input.ra-filtering-select-input').set('T')
90-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus')")
91-
page.execute_script("$('input.ra-filtering-select-input').trigger('keydown')")
90+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
9291
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
93-
page.execute_script %{$('ul.ui-autocomplete li.ui-menu-item a:contains("#{team.name}")').trigger('mouseenter').click()}
92+
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("#{team.name}")).click()}
9493
click_button 'Save'
9594
expect(ManagingUser.first.team).to eq team
9695
end

spec/integration/fields/multiple_carrierwave_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838

3939
it 'supports reordering files', js: true do
4040
visit edit_path(model_name: 'field_test', id: field_test.id)
41+
page.execute_script File.read(File.expand_path('../../../vendor/assets/javascripts/rails_admin/jquery3.js', __dir__))
4142
page.execute_script File.read(File.expand_path('../../support/jquery.simulate.drag-sortable.js', __dir__))
4243
page.execute_script %{$(".ui-sortable-handle:first-child").simulateDragSortable({move: 1});}
4344
click_button 'Save'

spec/integration/fields/polymorphic_assosiation_spec.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
visit new_path(model_name: 'comment')
1010
select 'Player', from: 'comment[commentable_type]'
1111
find('input.ra-filtering-select-input').set('Rob')
12-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
12+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
1313
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
14-
page.execute_script %{$('ul.ui-autocomplete li.ui-menu-item a:contains("Jackie Robinson")').trigger('mouseenter').click()}
14+
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Jackie Robinson")).click()}
1515
click_button 'Save'
1616
expect(Comment.first.commentable).to eq @players[0]
1717
end
@@ -35,10 +35,10 @@
3535
select 'Polymorphic association test', from: 'comment[commentable_type]'
3636
find('input.ra-filtering-select-input').set('Rob')
3737

38-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
38+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
3939
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
4040

41-
page.execute_script %{$('ul.ui-autocomplete li.ui-menu-item a:contains("Jackie Robinson")').trigger('mouseenter').click()}
41+
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Jackie Robinson")).click()}
4242
click_button 'Save'
4343
expect(Comment.first.commentable).to eq polymorphic_association_tests.first
4444
end
@@ -55,15 +55,15 @@
5555
expect(find('select#comment_commentable_type').value).to eq 'Team'
5656
expect(find('select#comment_commentable_id', visible: false).value).to eq team.id.to_s
5757
find('input.ra-filtering-select-input').set('Los')
58-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
58+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
5959
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
6060
expect(all('ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to eq ['Los Angeles Dodgers']
6161
select 'Player', from: 'comment[commentable_type]'
6262
find('input.ra-filtering-select-input').set('Rob')
63-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
63+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
6464
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
6565
expect(all('ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to eq ['Rob Wooten', 'Jackie Robinson']
66-
page.execute_script %{$('ul.ui-autocomplete li.ui-menu-item a:contains("Jackie Robinson")').trigger('mouseenter').click()}
66+
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Jackie Robinson")).click()}
6767
click_button 'Save'
6868
expect(comment.reload.commentable).to eq players[0]
6969
end

spec/integration/widgets/filtering_multi_select_spec.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121

2222
it 'supports filtering' do
2323
find('input.ra-multiselect-search').set('Alex')
24-
page.execute_script("$('input.ra-multiselect-search').trigger('focus').trigger('keydown')")
24+
page.execute_script("document.querySelector('input.ra-multiselect-search').dispatchEvent(new KeyboardEvent('keydown'))")
2525
is_expected.to have_content 'No objects found'
2626
find('input.ra-multiselect-search').set('Ma')
27-
page.execute_script("$('input.ra-multiselect-search').trigger('focus').trigger('keydown')")
27+
page.execute_script("document.querySelector('input.ra-multiselect-search').dispatchEvent(new KeyboardEvent('keydown'))")
2828
is_expected.to have_content 'Leonys'
2929
expect(all('.ra-multiselect-collection option').map(&:text)).to match_array ['Leonys Martin', 'Matt Garza']
3030
end
@@ -89,11 +89,11 @@
8989

9090
it 'supports filtering' do
9191
find('input.ra-multiselect-search').set('Alex')
92-
page.execute_script("$('input.ra-multiselect-search').trigger('focus').trigger('keydown')")
92+
page.execute_script("document.querySelector('input.ra-multiselect-search').dispatchEvent(new KeyboardEvent('keydown'))")
9393
is_expected.to have_content 'No objects found'
9494
players[2].update name: 'Adam Rosales'
9595
find('input.ra-multiselect-search').set('Ma')
96-
page.execute_script("$('input.ra-multiselect-search').trigger('focus').trigger('keydown')")
96+
page.execute_script("document.querySelector('input.ra-multiselect-search').dispatchEvent(new KeyboardEvent('keydown'))")
9797
is_expected.to have_content 'Leonys'
9898
expect(all('.ra-multiselect-collection option').map(&:text)).to match_array ['Leonys Martin']
9999
end
@@ -107,7 +107,7 @@
107107

108108
it 'picks all available items' do
109109
find('input.ra-multiselect-search').set('Ma')
110-
page.execute_script("$('input.ra-multiselect-search').trigger('focus').trigger('keydown')")
110+
page.execute_script("document.querySelector('input.ra-multiselect-search').dispatchEvent(new KeyboardEvent('keydown'))")
111111
expect(page).to have_css('.ra-multiselect-collection option', text: /Matt/)
112112
click_link 'Choose all'
113113
expect(all(:css, '#team_player_ids option', visible: false).map(&:value)).to match_array players[1..2].map(&:id).map(&:to_s)

spec/integration/widgets/filtering_select_spec.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,25 @@
2121

2222
it 'supports filtering' do
2323
find('input.ra-filtering-select-input').set('ge')
24-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
24+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
2525
is_expected.to have_selector('ul.ui-autocomplete li.ui-menu-item a')
2626
expect(all(:css, 'ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to match_array ['Los Angeles Dodgers', 'Texas Rangers']
2727
find('input.ra-filtering-select-input').set('Los')
28-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
28+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
2929
is_expected.to have_selector('ul.ui-autocomplete li.ui-menu-item a')
3030
expect(all(:css, 'ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to eq ['Los Angeles Dodgers']
3131
find('input.ra-filtering-select-input').set('Mets')
32-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
32+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
3333
is_expected.to have_selector('ul.ui-autocomplete li.ui-menu-item a')
3434
expect(all(:css, 'ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to match_array ['No objects found']
3535
end
3636

3737
it 'sets id of the selected item' do
3838
find('input.ra-filtering-select-input').set('Tex')
39-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
39+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
4040
is_expected.to have_selector('ul.ui-autocomplete li.ui-menu-item a')
4141
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
42-
page.execute_script %{$('ul.ui-autocomplete li.ui-menu-item a:contains("Texas Rangers")').trigger('mouseenter').click()}
42+
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Texas Rangers")).click()}
4343
expect(find('#player_team_id', visible: false).value).to eq teams[1].id.to_s
4444
end
4545
end
@@ -49,17 +49,17 @@
4949
visit edit_path(model_name: 'player', id: player.id)
5050
expect(find('#player_team_id', visible: false).value).to eq teams[0].id.to_s
5151
find('input.ra-filtering-select-input').set('Tex')
52-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
52+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
5353
is_expected.to have_selector('ul.ui-autocomplete li.ui-menu-item a')
5454
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
55-
page.execute_script %{$('ul.ui-autocomplete li.ui-menu-item a:contains("Texas Rangers")').trigger('mouseenter').click()}
55+
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Texas Rangers")).click()}
5656
expect(find('#player_team_id', visible: false).value).to eq teams[1].id.to_s
5757
end
5858

5959
it 'clears the current selection with making the search box empty' do
6060
visit edit_path(model_name: 'player', id: player.id)
6161
find('input.ra-filtering-select-input').set('')
62-
page.execute_script("$('input.ra-filtering-select-input').trigger('keyup')")
62+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keyup'))")
6363
expect(find('#player_team_id', visible: false).value).to be_empty
6464
end
6565

@@ -109,12 +109,12 @@
109109

110110
it 'supports filtering' do
111111
find('input.ra-filtering-select-input').set('ge')
112-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
112+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
113113
is_expected.to have_selector('ul.ui-autocomplete li.ui-menu-item a')
114114
expect(all(:css, 'ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to match_array ['Los Angeles Dodgers', 'Texas Rangers']
115115
teams[0].update name: 'Cincinnati Reds'
116116
find('input.ra-filtering-select-input').set('Red')
117-
page.execute_script("$('input.ra-filtering-select-input').trigger('focus').trigger('keydown')")
117+
page.execute_script("document.querySelector('input.ra-filtering-select-input').dispatchEvent(new KeyboardEvent('keydown'))")
118118
is_expected.to have_selector('ul.ui-autocomplete li.ui-menu-item a')
119119
expect(all(:css, 'ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to eq ['Cincinnati Reds']
120120
end

spec/integration/widgets/nested_many_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
expect(page).to have_selector('.fields.tab-pane.active', visible: true)
1919

2020
# trigger click via JS, workaround for instability in CI
21-
execute_script %($('button[name="_save"]').trigger('click');)
21+
execute_script %(document.querySelector('button[name="_save"]').click())
2222
is_expected.to have_content('Field test successfully updated')
2323

2424
expect(field_test.nested_field_tests.length).to eq(1)
@@ -32,7 +32,7 @@
3232
edited_id = find('#field_test_nested_field_tests_attributes_0_id', visible: false).value
3333

3434
# trigger click via JS, workaround for instability in CI
35-
execute_script %($('button[name="_save"]').trigger('click');)
35+
execute_script %(document.querySelector('button[name="_save"]').click())
3636
is_expected.to have_content('Field test successfully updated')
3737

3838
expect(field_test.nested_field_tests.find(edited_id).title).to eq('nested field test title 1 edited')
@@ -45,7 +45,7 @@
4545
find('#field_test_nested_field_tests_attributes_0__destroy', visible: false).set('true')
4646

4747
# trigger click via JS, workaround for instability in CI
48-
execute_script %($('button[name="_save"]').trigger('click');)
48+
execute_script %(document.querySelector('button[name="_save"]').click())
4949
is_expected.to have_content('Field test successfully updated')
5050

5151
expect(field_test.reload.nested_field_tests.map(&:id)).to eq [nested_field_tests[1].id]

spec/integration/widgets/nested_one_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
fill_in 'field_test_comment_attributes_content', with: 'nested comment content'
1818

1919
# trigger click via JS, workaround for instability in CI
20-
execute_script %($('button[name="_save"]').trigger('click');)
20+
execute_script %(document.querySelector('button[name="_save"]').click())
2121
is_expected.to have_content('Field test successfully updated')
2222

2323
expect(field_test.reload.comment.content.strip).to eq('nested comment content')
@@ -31,7 +31,7 @@
3131
find('.comment_field .remove_nested_fields', visible: false).click
3232

3333
# trigger click via JS, workaround for instability in CI
34-
execute_script %($('button[name="_save"]').trigger('click');)
34+
execute_script %(document.querySelector('button[name="_save"]').click())
3535
is_expected.to have_content('Field test successfully updated')
3636

3737
expect(field_test.reload.comment).to be nil
@@ -77,7 +77,7 @@
7777
find('.comment_field .remove_nested_fields', visible: false).click
7878

7979
# trigger click via JS, workaround for instability in CI
80-
execute_script %($('button[name="_save"]').trigger('click');)
80+
execute_script %(document.querySelector('button[name="_save"]').click())
8181
is_expected.to have_content('Field test successfully updated')
8282

8383
expect(field_test.reload.comment).to be nil

0 commit comments

Comments
 (0)