From d870afafe6f485b496f984c636e5d952aec13b41 Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Tue, 5 May 2026 00:45:18 +0000 Subject: [PATCH 1/8] Update net-imap to version 0.6.4 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1b7e9b90e..d70dd3818 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -235,7 +235,7 @@ GEM nenv (0.3.0) net-http (0.9.1) uri (>= 0.11.1) - net-imap (0.6.3) + net-imap (0.6.4) date net-protocol net-pop (0.1.2) From 76f7f082e2c5bd3f0e4b5a2b8ca32cc8312a44e7 Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Tue, 5 May 2026 02:23:14 +0000 Subject: [PATCH 2/8] Update axios to version 1.15.2 --- package.json | 2 +- yarn.lock | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 53a3d8827..5164bbd1e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "dependencies": { "@popperjs/core": "^2.0.0", "@rails/ujs": "^7.1.600", - "axios": "^1.15.1", + "axios": "^1.15.2", "bootstrap": "^5.3.8", "bootstrap-vue-next": "^0.26.28", "cytoscape": "^3.33.2", diff --git a/yarn.lock b/yarn.lock index 4fb9de434..bf99e3268 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1070,10 +1070,10 @@ axios@^0.21.0: dependencies: follow-redirects "^1.14.0" -axios@^1.15.1: - version "1.15.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.15.1.tgz#075420b785da8adbdf545785b69f90c926b28542" - integrity sha512-WOG+Jj8ZOvR0a3rAn+Tuf1UQJRxw5venr6DgdbJzngJE3qG7X0kL83CZGpdHMxEm+ZK3seAbvFsw4FfOfP9vxg== +axios@^1.15.2: + version "1.15.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.15.2.tgz#eb8fb6d30349abace6ade5b4cb4d9e8a0dc23e5b" + integrity sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A== dependencies: follow-redirects "^1.15.11" form-data "^4.0.5" @@ -3393,6 +3393,7 @@ std-env@^4.0.0-rc.1: integrity sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: + name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -3418,6 +3419,7 @@ string_decoder@~1.1.1: safe-buffer "~5.1.0" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + name strip-ansi-cjs version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== From 8fc10a30314c65300aa18c1bc250b4c0a93cbfea Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Tue, 5 May 2026 19:00:14 +0000 Subject: [PATCH 3/8] Update @vue/test-utils to version 2.4.10 --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 278e7793d..9fe6baa1a 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@prettier/plugin-ruby": "^4.0.0", "@vitejs/plugin-vue": "^6.0", "@vitest/coverage-v8": "^4.0", - "@vue/test-utils": "^2.4.6", + "@vue/test-utils": "^2.4.10", "autoprefixer": "^10.5.0", "eslint": "^8.0.0", "eslint-config-prettier": "^8.10.0", diff --git a/yarn.lock b/yarn.lock index 0c8d4f084..8b81c675c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -932,13 +932,13 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.33.tgz#b41070039e91d2921edb4c38cbcc80f498a24f3a" integrity sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ== -"@vue/test-utils@^2.4.6": - version "2.4.6" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.4.6.tgz#7d534e70c4319d2a587d6a3b45a39e9695ade03c" - integrity sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow== +"@vue/test-utils@^2.4.10": + version "2.4.10" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.4.10.tgz#f3b006e03918e66b5df1f2a6f7f5200663b525d3" + integrity sha512-SmoZ5EA1kYiAFs9NkYdiFFQF+cSnUwnvlYEbY+DogWQZUiqOm/Y29eSbc5T6yi75SgSF9863SBeXniIEoPajCA== dependencies: js-beautify "^1.14.9" - vue-component-type-helpers "^2.0.0" + vue-component-type-helpers "^3.0.0" abbrev@^3.0.0: version "3.0.0" @@ -3691,10 +3691,10 @@ vitest@^4.0: vite "^6.0.0 || ^7.0.0 || ^8.0.0" why-is-node-running "^2.3.0" -vue-component-type-helpers@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-2.2.2.tgz#30bf59752635b6e61e666803718dec83d0f2db20" - integrity sha512-6lLY+n2xz2kCYshl59mL6gy8OUUTmkscmDFMO8i7Lj+QKwgnIFUZmM1i/iTYObtrczZVdw7UakPqDTGwVSGaRg== +vue-component-type-helpers@^3.0.0: + version "3.2.8" + resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-3.2.8.tgz#fb2f5722a51bc03638487d5cd43e0b527dcb8d1a" + integrity sha512-9689efAXhN/EV86plgkL/XFiJSXhGtWPG6JDboZ+QnjlUWUUQrQ0ILKQtw4iQsuwIwu5k6Aw+JnehDe7161e7A== vue-eslint-parser@^9.4.3: version "9.4.3" From 29ac07c69ff14670229ebab794396409f2f04385 Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Wed, 6 May 2026 20:30:17 +0000 Subject: [PATCH 4/8] Update nokogiri to version 1.19.3 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 074879f4d..5b0091d8f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -245,7 +245,7 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.19.2) + nokogiri (1.19.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) notiffany (0.1.3) From 0bc7a9a04344e702567afce07152f6a5c828f4a3 Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Wed, 6 May 2026 21:05:16 +0000 Subject: [PATCH 5/8] Update cytoscape to version 3.33.3 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 38a7bfb5b..0fb64c517 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "axios": "^1.15.2", "bootstrap": "^5.3.8", "bootstrap-vue-next": "^0.26.28", - "cytoscape": "^3.33.2", + "cytoscape": "^3.33.3", "cytoscape-elk": "^2.3.0", "cytoscape-popper": "^2.0.0", "devour-client": "^2.1.2", diff --git a/yarn.lock b/yarn.lock index 7df0034e5..c0347a2da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1354,10 +1354,10 @@ cytoscape-popper@^2.0.0: dependencies: "@popperjs/core" "^2.0.0" -cytoscape@^3.33.2: - version "3.33.2" - resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.33.2.tgz#3a58906b4002b7c237f54dfc9b971983757da791" - integrity sha512-sj4HXd3DokGhzZAdjDejGvTPLqlt84vNFN8m7bGsOzDY5DyVcxIb2ejIXat2Iy7HxWhdT/N1oKyheJ5YdpsGuw== +cytoscape@^3.33.3: + version "3.33.3" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.33.3.tgz#6c885823cb088eb8c31087c35d978661dcde5eae" + integrity sha512-Gej7U+OKR+LZ8kvX7rb2HhCYJ0IhvEFsnkud4SB1PR+BUY/TsSO0dmOW59WEVLu51b1Rm+gQRKoz4bLYxGSZ2g== data-urls@^5.0.0: version "5.0.0" From e2664377bee505f7feb06888d3a6c15eb7e226cc Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Thu, 7 May 2026 19:00:17 +0000 Subject: [PATCH 6/8] Update rubocop-capybara to version 2.23.0 --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 074879f4d..97ccb4243 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -201,7 +201,7 @@ GEM prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.19.3) + json (2.19.5) language_server-protocol (3.17.0.5) launchy (3.1.1) addressable (~> 2.8) @@ -255,7 +255,7 @@ GEM bigdecimal (>= 3.0) ostruct (>= 0.2) ostruct (0.6.3) - parallel (2.0.1) + parallel (2.1.0) parser (3.3.11.1) ast (~> 2.4.1) racc @@ -375,9 +375,9 @@ GEM rubocop-ast (1.49.1) parser (>= 3.3.7.2) prism (~> 1.7) - rubocop-capybara (2.22.1) + rubocop-capybara (2.23.0) lint_roller (~> 1.1) - rubocop (~> 1.72, >= 1.72.1) + rubocop (~> 1.81) rubocop-performance (1.26.1) lint_roller (~> 1.1) rubocop (>= 1.75.0, < 2.0) From bbd6815bc21aaf05cf71e93a236faf4013c944af Mon Sep 17 00:00:00 2001 From: Stephen Hulme Date: Fri, 8 May 2026 09:05:30 +0100 Subject: [PATCH 7/8] style: replace have_content with have_text --- .../features/cancelling_a_whole_plate_spec.rb | 2 +- .../charge_and_pass_libraries_spec.rb | 10 ++-- spec/features/creating_a_plate_spec.rb | 14 ++--- spec/features/creating_a_tag_plate_spec.rb | 14 ++--- .../features/creating_plate_with_bait_spec.rb | 2 +- spec/features/failing_a_whole_plate_spec.rb | 2 +- spec/features/failing_quadrants_spec.rb | 2 +- spec/features/failing_thresholds_spec.rb | 2 +- spec/features/failing_wells_spec.rb | 2 +- spec/features/plate_transfer_spec.rb | 58 +++++++++---------- .../pool_tubes_at_end_of_pipeline_spec.rb | 2 +- spec/features/pooling_multiple_plates_spec.rb | 6 +- spec/features/viewing_a_minimal_plate_spec.rb | 24 ++++---- spec/features/viewing_a_plate_spec.rb | 28 ++++----- spec/features/viewing_inboxes_spec.rb | 8 +-- spec/support/feature_helpers.rb | 4 +- 16 files changed, 90 insertions(+), 90 deletions(-) diff --git a/spec/features/cancelling_a_whole_plate_spec.rb b/spec/features/cancelling_a_whole_plate_spec.rb index b3e8d2928..33674018b 100644 --- a/spec/features/cancelling_a_whole_plate_spec.rb +++ b/spec/features/cancelling_a_whole_plate_spec.rb @@ -73,6 +73,6 @@ click_on('Cancel Labware') - expect(find_by_id('flashes')).to have_content("Labware: #{plate_barcode} has been changed to a state of Cancelled.") + expect(find_by_id('flashes')).to have_text("Labware: #{plate_barcode} has been changed to a state of Cancelled.") end end diff --git a/spec/features/charge_and_pass_libraries_spec.rb b/spec/features/charge_and_pass_libraries_spec.rb index 43f7af0e5..2be33c081 100644 --- a/spec/features/charge_and_pass_libraries_spec.rb +++ b/spec/features/charge_and_pass_libraries_spec.rb @@ -46,9 +46,9 @@ expect_work_completion_creation fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Passed') + expect(find_by_id('plate-show-page')).to have_text('Passed') click_button('Charge and pass libraries') - expect(page).to have_content('Requests have been passed') + expect(page).to have_text('Requests have been passed') end end @@ -90,10 +90,10 @@ expect_work_completion_creation fill_in_swipecard_and_barcode user_swipecard, tube_barcode - expect(find_by_id('tube-show-page')).to have_content('Passed') + expect(find_by_id('tube-show-page')).to have_text('Passed') click_button('Charge and pass libraries') - expect(page).to have_content('Requests have been passed') - expect(page).to have_content('Your submissions have been made and should be built shortly.') + expect(page).to have_text('Requests have been passed') + expect(page).to have_text('Your submissions have been made and should be built shortly.') end end end diff --git a/spec/features/creating_a_plate_spec.rb b/spec/features/creating_a_plate_spec.rb index 0c84edc99..fbd2fd2e8 100644 --- a/spec/features/creating_a_plate_spec.rb +++ b/spec/features/creating_a_plate_spec.rb @@ -97,7 +97,7 @@ plate_title = find_by_id('plate-title') expect(plate_title).to have_text('Limber Cherrypicked') click_on('Add an empty Basic plate') - expect(page).to have_content('New empty labware added to the system.') + expect(page).to have_text('New empty labware added to the system.') end context 'when printing a label' do @@ -134,7 +134,7 @@ before do click_on('Add an empty Basic plate') - expect(page).to have_content('New empty labware added to the system.') + expect(page).to have_text('New empty labware added to the system.') click_on('Print Label') expect(PMB::PrintJob).to have_received(:new) @@ -151,7 +151,7 @@ allow(SearchHelper).to receive(:alternative_workline_reference_name).with(child_plate).and_return(alternatives) click_on('Add an empty Basic plate') - expect(page).to have_content('New empty labware added to the system.') + expect(page).to have_text('New empty labware added to the system.') click_on('Print Label') expect(PMB::PrintJob).to have_received(:new) @@ -206,8 +206,8 @@ plate_title = find_by_id('plate-title') expect(plate_title).to have_text('Limber Cherrypicked') click_on('Add an empty Basic plate') - expect(page).to have_content('Cannot create the next piece of labware') - expect(page).to have_content('Well filter found 2 eligible requests for A1') + expect(page).to have_text('Cannot create the next piece of labware') + expect(page).to have_text('Well filter found 2 eligible requests for A1') end end @@ -241,7 +241,7 @@ plate_title = find_by_id('plate-title') expect(plate_title).to have_text('Limber Cherrypicked') click_on('Add an empty Basic plate') - expect(page).to have_content('New empty labware added to the system.') + expect(page).to have_text('New empty labware added to the system.') end end @@ -285,7 +285,7 @@ plate_title = find_by_id('plate-title') expect(plate_title).to have_text('Limber Cherrypicked') click_on('Add an empty Basic plate') - expect(page).to have_content('New empty labware added to the system.') + expect(page).to have_text('New empty labware added to the system.') end end end diff --git a/spec/features/creating_a_tag_plate_spec.rb b/spec/features/creating_a_tag_plate_spec.rb index 4d18fab2e..5bc210b08 100644 --- a/spec/features/creating_a_tag_plate_spec.rb +++ b/spec/features/creating_a_tag_plate_spec.rb @@ -117,13 +117,13 @@ plate_title = find_by_id('plate-title') expect(plate_title).to have_text('Limber Cherrypicked') click_on('Add an empty Tag Purpose plate') - expect(page).to have_content('Tag plate addition') - expect(find_by_id('tag-help')).to have_content(help_text) + expect(page).to have_text('Tag plate addition') + expect(find_by_id('tag-help')).to have_text(help_text) swipe_in('Tag plate barcode', with: tag_plate_barcode) - expect(page).to have_content(qcable_lot.lot_number) - expect(find_by_id('well_A2')).to have_content(a2_tag) + expect(page).to have_text(qcable_lot.lot_number) + expect(find_by_id('well_A2')).to have_text(a2_tag) click_on('Create Plate') - expect(page).to have_content('New empty labware added to the system.') + expect(page).to have_text('New empty labware added to the system.') end end @@ -135,10 +135,10 @@ plate_title = find_by_id('plate-title') expect(plate_title).to have_text('Limber Cherrypicked') click_on('Add an empty Tag Purpose plate') - expect(page).to have_content('Tag plate addition') + expect(page).to have_text('Tag plate addition') swipe_in('Tag plate barcode', with: tag_plate_barcode) expect(page).to have_button('Create Plate', disabled: true) - expect(page).to have_content(tag_error) + expect(page).to have_text(tag_error) end end diff --git a/spec/features/creating_plate_with_bait_spec.rb b/spec/features/creating_plate_with_bait_spec.rb index 86dfbc18f..6a57de333 100644 --- a/spec/features/creating_plate_with_bait_spec.rb +++ b/spec/features/creating_plate_with_bait_spec.rb @@ -64,7 +64,7 @@ plate_title = find_by_id('plate-title') expect(plate_title).to have_text('example-purpose') click_on 'Add an empty with-baits plate' - expect(page).to have_content('Carefully check the bait layout') + expect(page).to have_text('Carefully check the bait layout') click_on 'Create plate' # rubocop:todo Layout/LineLength # I do not check the show page for a new plate, as it will be rendered based on my own stubs only, so it is not very informative diff --git a/spec/features/failing_a_whole_plate_spec.rb b/spec/features/failing_a_whole_plate_spec.rb index 73f7743bb..fa7177e09 100644 --- a/spec/features/failing_a_whole_plate_spec.rb +++ b/spec/features/failing_a_whole_plate_spec.rb @@ -68,7 +68,7 @@ click_on('Fail Labware') - expect(find_by_id('flashes')).to have_content( + expect(find_by_id('flashes')).to have_text( "Labware: #{plate_barcode} has been changed to a state of Failed. The customer will still be charged." ) end diff --git a/spec/features/failing_quadrants_spec.rb b/spec/features/failing_quadrants_spec.rb index dedb8375a..a22bee1f7 100644 --- a/spec/features/failing_quadrants_spec.rb +++ b/spec/features/failing_quadrants_spec.rb @@ -72,6 +72,6 @@ click_on('Select Quadrant 4') click_on('Fail selected wells') - expect(find_by_id('flashes')).to have_content('Selected wells have been failed') + expect(find_by_id('flashes')).to have_text('Selected wells have been failed') end end diff --git a/spec/features/failing_thresholds_spec.rb b/spec/features/failing_thresholds_spec.rb index bcc2972b9..218c4d852 100644 --- a/spec/features/failing_thresholds_spec.rb +++ b/spec/features/failing_thresholds_spec.rb @@ -77,6 +77,6 @@ fill_in 'Molarity', with: 15 click_on('Fail selected wells') - expect(find_by_id('flashes')).to have_content('Selected wells have been failed') + expect(find_by_id('flashes')).to have_text('Selected wells have been failed') end end diff --git a/spec/features/failing_wells_spec.rb b/spec/features/failing_wells_spec.rb index 9737be860..cd6fd8cd9 100644 --- a/spec/features/failing_wells_spec.rb +++ b/spec/features/failing_wells_spec.rb @@ -70,6 +70,6 @@ end click_on('Fail selected wells') - expect(find_by_id('flashes')).to have_content('Selected wells have been failed') + expect(find_by_id('flashes')).to have_text('Selected wells have been failed') end end diff --git a/spec/features/plate_transfer_spec.rb b/spec/features/plate_transfer_spec.rb index f98f04b6a..c09bcc664 100644 --- a/spec/features/plate_transfer_spec.rb +++ b/spec/features/plate_transfer_spec.rb @@ -85,39 +85,39 @@ fill_in_swipecard(swipecard) # if we don't do this the next step doesn't work - expect(page).to have_content('Jane Doe') + expect(page).to have_text('Jane Doe') click_button('Robots') click_link 'bravo LB Post Shear => LB End Prep' - expect(page).to have_content('bravo LB Post Shear => LB End Prep') + expect(page).to have_text('bravo LB Post Shear => LB End Prep') scan_in 'Scan robot', with: '123' - within('#robot') { expect(page).to have_content('123') } + within('#robot') { expect(page).to have_text('123') } scan_in 'Scan bed', with: '580000004838' scan_in 'Scan plate', with: plate_barcode_1 within('#bed_list') do - expect(page).to have_no_content("Robot: #{robot_barcode}") - expect(page).to have_content("Labware: #{plate_barcode_1}") - expect(page).to have_content('Bed: 580000004838') + expect(page).to have_no_text("Robot: #{robot_barcode}") + expect(page).to have_text("Labware: #{plate_barcode_1}") + expect(page).to have_text('Bed: 580000004838') end scan_in 'Scan robot', with: robot_barcode within('#robot') do - expect(page).to have_no_content('123') - expect(page).to have_content(robot_barcode.to_s) + expect(page).to have_no_text('123') + expect(page).to have_text(robot_barcode.to_s) end scan_in 'Scan bed', with: '580000014851' scan_in 'Scan plate', with: plate_barcode_2 within('#bed_list') do - expect(page).to have_no_content("Robot: #{robot_barcode}") - expect(page).to have_content("Labware: #{plate_barcode_1}") - expect(page).to have_content('Bed: 580000004838') - expect(page).to have_content("Labware: #{plate_barcode_2}") - expect(page).to have_content('Bed: 580000014851') + expect(page).to have_no_text("Robot: #{robot_barcode}") + expect(page).to have_text("Labware: #{plate_barcode_1}") + expect(page).to have_text('Bed: 580000004838') + expect(page).to have_text("Labware: #{plate_barcode_2}") + expect(page).to have_text('Bed: 580000014851') end click_link('Validate Layout') within '#validation_report' do - expect(page).to have_content('No problems detected!') + expect(page).to have_text('No problems detected!') end click_button('Start the bravo LB Post Shear => LB End Prep') - expect(page).to have_content('Robot bravo LB Post Shear => LB End Prep has been started.') + expect(page).to have_text('Robot bravo LB Post Shear => LB End Prep has been started.') end scenario 'informs if the robot barcode is wrong' do @@ -126,22 +126,22 @@ fill_in_swipecard(swipecard) - expect(page).to have_content('Jane Doe') + expect(page).to have_text('Jane Doe') click_button('Robots') click_link 'bravo LB End Prep' - expect(page).to have_content('bravo LB End Prep') + expect(page).to have_text('bravo LB End Prep') scan_in 'Scan robot', with: robot_barcode - within('#robot') { expect(page).to have_content(robot_barcode.to_s) } + within('#robot') { expect(page).to have_text(robot_barcode.to_s) } scan_in 'Scan bed', with: '580000014851' scan_in 'Scan plate', with: plate_barcode_1 within('#bed_list') do - expect(page).to have_no_content("Robot: #{robot_barcode}") - expect(page).to have_content("Labware: #{plate_barcode_1}") - expect(page).to have_content('Bed: 580000014851') + expect(page).to have_no_text("Robot: #{robot_barcode}") + expect(page).to have_text("Labware: #{plate_barcode_1}") + expect(page).to have_text('Bed: 580000014851') end click_link('Validate Layout') within '#validation_report' do - expect(page).to have_content('There were problems: Your labware is not on the right robot') + expect(page).to have_text('There were problems: Your labware is not on the right robot') end end @@ -151,23 +151,23 @@ fill_in_swipecard(swipecard) - expect(page).to have_content('Jane Doe') + expect(page).to have_text('Jane Doe') click_button('Robots') click_link 'bravo LB End Prep' - expect(page).to have_content('bravo LB End Prep') + expect(page).to have_text('bravo LB End Prep') scan_in 'Scan robot', with: robot_barcode - within('#robot') { expect(page).to have_content(robot_barcode.to_s) } + within('#robot') { expect(page).to have_text(robot_barcode.to_s) } scan_in 'Scan bed', with: '580000014851' scan_in 'Scan plate', with: plate_barcode_1 within('#bed_list') do - expect(page).to have_no_content("Robot: #{robot_barcode}") - expect(page).to have_content("Labware: #{plate_barcode_1}") - expect(page).to have_content('Bed: 580000014851') + expect(page).to have_no_text("Robot: #{robot_barcode}") + expect(page).to have_text("Labware: #{plate_barcode_1}") + expect(page).to have_text('Bed: 580000014851') end click_link('Validate Layout') within '#validation_report' do - expect(page).to have_content('No problems detected!') + expect(page).to have_text('No problems detected!') end end end diff --git a/spec/features/pool_tubes_at_end_of_pipeline_spec.rb b/spec/features/pool_tubes_at_end_of_pipeline_spec.rb index 5df221d1a..c039ff88d 100644 --- a/spec/features/pool_tubes_at_end_of_pipeline_spec.rb +++ b/spec/features/pool_tubes_at_end_of_pipeline_spec.rb @@ -79,7 +79,7 @@ scan_in('Tube barcode', with: sibling_barcode) find_field('Tube barcode').send_keys barcode_reader_key click_on('Make Tube') - expect(page).to have_content('New empty labware added to the system.') + expect(page).to have_text('New empty labware added to the system.') end end diff --git a/spec/features/pooling_multiple_plates_spec.rb b/spec/features/pooling_multiple_plates_spec.rb index 83690ddb3..93fedbaae 100644 --- a/spec/features/pooling_multiple_plates_spec.rb +++ b/spec/features/pooling_multiple_plates_spec.rb @@ -98,10 +98,10 @@ expect(plate_title).to have_text('Pooled example') click_on('Add an empty Pool Plate plate') scan_in('Plate 1', with: plate_barcode_1) - expect(page).to have_content('DN1: A1') - expect(page).to have_no_content('DN1: A1, B1') + expect(page).to have_text('DN1: A1') + expect(page).to have_no_text('DN1: A1, B1') scan_in('Plate 2', with: plate_barcode_2) - expect(page).to have_content('DN2: A1, B1') + expect(page).to have_text('DN2: A1, B1') click_on('Make Pre-Cap pool Plate') expect(page).to have_text('New empty labware added to the system') expect(page).to have_text('Pool Plate') diff --git a/spec/features/viewing_a_minimal_plate_spec.rb b/spec/features/viewing_a_minimal_plate_spec.rb index ebfdd9c05..a5cb2bac5 100644 --- a/spec/features/viewing_a_minimal_plate_spec.rb +++ b/spec/features/viewing_a_minimal_plate_spec.rb @@ -30,8 +30,8 @@ scenario 'of a recognised type' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Limber Cherrypicked') - expect(find('.state-badge')).to have_content('Pending') + expect(find_by_id('plate-show-page')).to have_text('Limber Cherrypicked') + expect(find('.state-badge')).to have_text('Pending') end context 'a passed plate' do @@ -39,8 +39,8 @@ scenario 'if a plate is passed creation of a child is allowed' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Limber Cherrypicked') - expect(find('.state-badge')).to have_content('Passed') + expect(find_by_id('plate-show-page')).to have_text('Limber Cherrypicked') + expect(find('.state-badge')).to have_text('Passed') expect(page).to have_button('Add an empty Child Purpose 0 plate') end end @@ -50,8 +50,8 @@ scenario 'if a plate is started creation of a child is not allowed' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Limber Cherrypicked') - expect(find('.state-badge')).to have_content('Started') + expect(find_by_id('plate-show-page')).to have_text('Limber Cherrypicked') + expect(find('.state-badge')).to have_text('Started') expect(page).to have_no_button('Add an empty Limber Example Purpose plate') end end @@ -61,7 +61,7 @@ scenario 'there is a warning' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find('.asset-warnings')).to have_content( + expect(find('.asset-warnings')).to have_text( 'Submission Requests of type Limber WGS have already been down the pipeline and were completed.' ) end @@ -72,7 +72,7 @@ scenario 'there is a warning' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find('.asset-warnings')).to have_content( + expect(find('.asset-warnings')).to have_text( 'Submission on this plate has some failed wells (A1-E1). You should not carry out further work. ' \ 'Any further work conducted from this plate will run into issues at the end of the pipeline.' ) @@ -84,7 +84,7 @@ scenario 'there is a warning' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find('.asset-warnings')).to have_content( + expect(find('.asset-warnings')).to have_text( 'Wells on this plate (A1-E1) have cancelled requests. You should not carry out further work. ' \ 'Any further work conducted from this plate will run into issues at the end of the pipeline.' ) @@ -102,7 +102,7 @@ scenario 'there is a warning' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find('.asset-warnings')).to have_content( + expect(find('.asset-warnings')).to have_text( 'Submission Requests of type Limber WGS have already been down the pipeline and were completed.' ) end @@ -121,14 +121,14 @@ scenario 'we see the tube label form' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(page).to have_content('Print tube labels') + expect(page).to have_text('Print tube labels') expect(page).to have_select('Barcode Printer', selected: default_tube_printer) end scenario 'we can use the tube label form' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode within('.tube-printing') do - expect(page).to have_content('Print tube labels') + expect(page).to have_text('Print tube labels') select(barcode_printer, from: 'Barcode Printer') allow_any_instance_of(PrintJob).to receive(:execute).and_return(true) diff --git a/spec/features/viewing_a_plate_spec.rb b/spec/features/viewing_a_plate_spec.rb index f1fda17ed..faefe7499 100644 --- a/spec/features/viewing_a_plate_spec.rb +++ b/spec/features/viewing_a_plate_spec.rb @@ -45,8 +45,8 @@ scenario 'of a recognised type' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Limber Cherrypicked') - expect(find('.state-badge')).to have_content('Pending') + expect(find_by_id('plate-show-page')).to have_text('Limber Cherrypicked') + expect(find('.state-badge')).to have_text('Pending') find_link('Download Concentration CSV', href: '/plates/DN1S/exports/concentrations.csv') end @@ -55,8 +55,8 @@ scenario 'of a recognised type' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Limber Cherrypicked') - expect(find('.state-badge')).to have_content('Pending') + expect(find_by_id('plate-show-page')).to have_text('Limber Cherrypicked') + expect(find('.state-badge')).to have_text('Pending') find_link('Download Worksheet CSV', href: "/plates/#{plate_uuid}.csv") find_link('Download Concentration CSV', href: '/plates/DN1S/exports/concentrations.csv') end @@ -67,8 +67,8 @@ scenario 'creation of a child is allowed' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Limber Cherrypicked') - expect(find('.state-badge')).to have_content('Passed') + expect(find_by_id('plate-show-page')).to have_text('Limber Cherrypicked') + expect(find('.state-badge')).to have_text('Passed') expect(page).to have_button('Add an empty Child Purpose 0 plate') end end @@ -78,8 +78,8 @@ scenario 'if a plate is started creation of a child is not allowed' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_content('Limber Cherrypicked') - expect(find('.state-badge')).to have_content('Started') + expect(find_by_id('plate-show-page')).to have_text('Limber Cherrypicked') + expect(find('.state-badge')).to have_text('Started') expect(page).to have_no_button('Add an empty Limber Example Purpose plate') end end @@ -91,7 +91,7 @@ scenario 'there is a warning' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find('.asset-warnings')).to have_content('Wells contain suboptimal aliquots') + expect(find('.asset-warnings')).to have_text('Wells contain suboptimal aliquots') end scenario 'the well is flagged as suboptimal' do @@ -103,7 +103,7 @@ feature 'without a suboptimal well' do scenario 'there is a warning' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('plate-show-page')).to have_no_content('Wells contain suboptimal aliquots') + expect(find_by_id('plate-show-page')).to have_no_text('Wells contain suboptimal aliquots') end scenario 'the well is flagged as suboptimal' do @@ -117,7 +117,7 @@ scenario 'there is a warning' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find('.asset-warnings')).to have_content( + expect(find('.asset-warnings')).to have_text( 'Submission Requests of type Limber WGS have already been down the pipeline and were completed.' ) end @@ -129,7 +129,7 @@ scenario 'it shows tags' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(find_by_id('aliquot_A1')).to have_content('1') + expect(find_by_id('aliquot_A1')).to have_text('1') end end @@ -146,7 +146,7 @@ scenario 'we see the tube label form' do fill_in_swipecard_and_barcode user_swipecard, plate_barcode - expect(page).to have_content('Print tube labels') + expect(page).to have_text('Print tube labels') expect(page).to have_select('Barcode Printer', selected: default_tube_printer) end @@ -155,7 +155,7 @@ fill_in_swipecard_and_barcode user_swipecard, plate_barcode within('.tube-printing') do - expect(page).to have_content('Print tube labels') + expect(page).to have_text('Print tube labels') select(barcode_printer, from: 'Barcode Printer') # So RSpec cautions against this as a code smell, but tbh it feels vastly better than the diff --git a/spec/features/viewing_inboxes_spec.rb b/spec/features/viewing_inboxes_spec.rb index 8dc78f34f..7cd6a63f4 100644 --- a/spec/features/viewing_inboxes_spec.rb +++ b/spec/features/viewing_inboxes_spec.rb @@ -41,15 +41,15 @@ fill_in_swipecard user_swipecard click_button 'Inboxes' click_link 'All Ongoing Plates' - expect(page).to have_content('Ongoing Plates') - expect(page).to have_content('DN3') + expect(page).to have_text('Ongoing Plates') + expect(page).to have_text('DN3') end scenario 'ongoing tubes' do fill_in_swipecard user_swipecard click_button 'Inboxes' click_link 'All Ongoing Tubes' - expect(page).to have_content('Ongoing Tubes') - expect(page).to have_content('NT2') + expect(page).to have_text('Ongoing Tubes') + expect(page).to have_text('NT2') end end diff --git a/spec/support/feature_helpers.rb b/spec/support/feature_helpers.rb index 5698bef18..0d1782e40 100644 --- a/spec/support/feature_helpers.rb +++ b/spec/support/feature_helpers.rb @@ -29,7 +29,7 @@ def fill_in_swipecard_and_barcode(swipecard, barcode) within '.content-main' do swipe_in 'User Swipecard', with: swipecard - expect(page).to have_content('Jane Doe') + expect(page).to have_text('Jane Doe') scan_in 'Plate or Tube Barcode', with: barcode end end @@ -39,7 +39,7 @@ def fill_in_swipecard(swipecard) within '.content-main' do swipe_in 'User Swipecard', with: swipecard - expect(page).to have_content('Jane Doe') + expect(page).to have_text('Jane Doe') end end From 34974c346722a59b2cfdfc20951cb70ddc243fd5 Mon Sep 17 00:00:00 2001 From: Stephen Hulme Date: Mon, 11 May 2026 12:38:53 +0100 Subject: [PATCH 8/8] build: add chrome_devtools_rails --- Gemfile | 1 + Gemfile.lock | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Gemfile b/Gemfile index 6c573a4b5..783111dbe 100644 --- a/Gemfile +++ b/Gemfile @@ -54,6 +54,7 @@ group :test do end group :development do + gem 'chrome_devtools_rails' # Automatically serves the Chrome DevTools workspace mapping file gem 'guard-rspec', require: false gem 'pry' gem 'pry-byebug' diff --git a/Gemfile.lock b/Gemfile.lock index 740d67793..1c03eead1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -132,6 +132,8 @@ GEM selenium-webdriver childprocess (5.1.0) logger (~> 1.5) + chrome_devtools_rails (0.1.0) + rails (~> 8.0, >= 8.0.2) coderay (1.1.3) concurrent-ruby (1.3.6) connection_pool (3.0.2) @@ -476,6 +478,7 @@ DEPENDENCIES bootsnap capybara capybara-selenium + chrome_devtools_rails csv erb_lint exception_notification