From b671f2b931d32ece593ffc4dc91a48357ab0c0aa Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 20:52:55 +0000 Subject: [PATCH 01/10] Repoint eyes 'star wars RTL' test off prod starwars course Use allthethingscourse L24/9 (Star wars #9, free-play, skin hoc2015) in place of courses/starwars/units/1/lessons/1/levels/15. The ar-sa RTL Applitools snapshot will need a one-time re-baseline on drone (course-header chrome differs). Co-Authored-By: Claude Opus 4.8 --- dashboard/test/ui/features/eyes.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/eyes.feature b/dashboard/test/ui/features/eyes.feature index a69197c901868..500d5ff62bb09 100644 --- a/dashboard/test/ui/features/eyes.feature +++ b/dashboard/test/ui/features/eyes.feature @@ -65,7 +65,7 @@ Scenario: Scenario: When I open my eyes to test "star wars RTL" - Given I am on "http://studio.code.org/courses/starwars/units/1/lessons/1/levels/15/lang/ar-sa?noautoplay=true" + Given I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/24/levels/9/lang/ar-sa?noautoplay=true" And The header is finished animating And I wait to see ".header_user" And I wait to see "#runButton" From 565a3c510a9bdf39d6d3711d6aa3631d230f622c Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 20:52:56 +0000 Subject: [PATCH 02/10] Repoint pairing test off prod starwars course Use allthethingscourse L24/7 (Star wars #7) in place of courses/starwars/units/1/lessons/1/levels/5; pairing is course-independent. Co-Authored-By: Claude Opus 4.8 --- dashboard/test/ui/features/teacher_tools/pairing.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/teacher_tools/pairing.feature b/dashboard/test/ui/features/teacher_tools/pairing.feature index 2faab1410aa10..54964a586b12e 100644 --- a/dashboard/test/ui/features/teacher_tools/pairing.feature +++ b/dashboard/test/ui/features/teacher_tools/pairing.feature @@ -54,7 +54,7 @@ Feature: Student pairing And I join the section Given I create a student named "Thing_Two" And I join the section - Given I am on "http://studio.code.org/courses/starwars/units/1/lessons/1/levels/5" + Given I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/24/levels/7" And I wait for the lab page to fully load Then I initiate pairing And I verify the user menu shows "Thing_One" and "Thing_Two" are in a pairing group From 7c768791c280561680412f3128391951b8afe75a Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 20:52:57 +0000 Subject: [PATCH 03/10] Repoint cached level page test off prod dance course Navigate to allthethingscourse unit 1 lesson 37 level 8 (Dance_Party_12) instead of dance unit 1 lesson 1 level 13 -- the same Dance Lab level. Co-Authored-By: Claude Opus 4.8 --- .../test/ui/features/teacher_tools/cached_level_page.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/teacher_tools/cached_level_page.feature b/dashboard/test/ui/features/teacher_tools/cached_level_page.feature index b26a2ecd166dd..ab2364f4f07de 100644 --- a/dashboard/test/ui/features/teacher_tools/cached_level_page.feature +++ b/dashboard/test/ui/features/teacher_tools/cached_level_page.feature @@ -12,7 +12,7 @@ Feature: Cached level page # Teacher panel loads as expected on cached level page Given I sign in as "Teacher Monica" - Then I navigate to the course "dance" unit 1 lesson 1 level 13 for the section I saved + Then I navigate to the course "allthethingscourse" unit 1 lesson 37 level 8 for the section I saved And I wait until element "#teacher-panel-container" is visible And I wait until element "td:eq(1)" contains text "Joey" And I wait for 20 seconds From 3ee7116a57f872a6069d193a9bfe16216a92b85b Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 20:52:58 +0000 Subject: [PATCH 04/10] Repoint flappy share page test off prod flappy tutorial Use allthethingscourse L7/2 (flappy_11, freePlay) in place of /flappy/10, which resolves to the same flappy_11 freeplay level. Co-Authored-By: Claude Opus 4.8 --- dashboard/test/ui/features/star_labs/sharepage.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/star_labs/sharepage.feature b/dashboard/test/ui/features/star_labs/sharepage.feature index a1d5f2fc0fec5..2fcb24b6c4018 100644 --- a/dashboard/test/ui/features/star_labs/sharepage.feature +++ b/dashboard/test/ui/features/star_labs/sharepage.feature @@ -2,7 +2,7 @@ Feature: Puzzle share page Scenario: Share a flappy game, visit the share page, and visit the workspace - Given I am on "http://studio.code.org/flappy/10?noautoplay=true" + Given I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/7/levels/2?noautoplay=true" And I wait for the lab page to fully load And I've initialized the workspace with my flappy puzzle. From 479f3e085bc695096c1d48b5e539b9b0fdfe9417 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 20:52:59 +0000 Subject: [PATCH 05/10] Repoint block auto-layout test off prod flappy tutorial Background navigates to allthethingscourse L7/2 (flappy_11) instead of /flappy/10 (same freeplay level). Co-Authored-By: Claude Opus 4.8 --- dashboard/test/ui/features/star_labs/blocklayout.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/star_labs/blocklayout.feature b/dashboard/test/ui/features/star_labs/blocklayout.feature index e1426e731ef96..c6e82f1a57164 100644 --- a/dashboard/test/ui/features/star_labs/blocklayout.feature +++ b/dashboard/test/ui/features/star_labs/blocklayout.feature @@ -1,6 +1,6 @@ Feature: Block auto-layout Background: - Given I am on "http://studio.code.org/flappy/10?noautoplay=true" + Given I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/7/levels/2?noautoplay=true" And I wait for the lab page to fully load Scenario: Auto-placing malformed start blocks From 500a35bafc17327b8af83685e756398573ed5c7b Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 20:53:01 +0000 Subject: [PATCH 06/10] Repoint video fallback player test off prod flappy tutorial Use allthethingscourse L7/1 (flappy_1) for all three /flappy/1 references; same level, so the hardcoded YouTube id still matches. The @eyes 'Fallback player' snapshot needs a one-time drone re-baseline. Co-Authored-By: Claude Opus 4.8 --- .../features/teacher_tools/video/videoplayer_eyes.feature | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dashboard/test/ui/features/teacher_tools/video/videoplayer_eyes.feature b/dashboard/test/ui/features/teacher_tools/video/videoplayer_eyes.feature index 8e7af71109fa7..10d0ba69c2262 100644 --- a/dashboard/test/ui/features/teacher_tools/video/videoplayer_eyes.feature +++ b/dashboard/test/ui/features/teacher_tools/video/videoplayer_eyes.feature @@ -6,7 +6,7 @@ Background: @eyes Scenario: Fallback player When I open my eyes to test "fallback player" - Given I am on "http://studio.code.org/flappy/1?force_youtube_fallback" + Given I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/7/levels/1?force_youtube_fallback" When I wait to see "#x-close" Then I see ".video-js" And I see no difference for "fallback video player for level" @@ -33,14 +33,14 @@ Scenario: Fallback player for embedded # either, and therefore does not work in any browser we currently run. @skip Scenario: Flash fallback player gets injected in Chrome (assuming Flash is available) - Given I am on "http://studio.code.org/flappy/1?force_youtube_fallback" + Given I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/7/levels/1?force_youtube_fallback" When I wait to see "#x-close" Then I see ".video-js" Then I see jquery selector object[type='application/x-shockwave-flash'] @no_mobile Scenario: Normal player - Given I am on "http://studio.code.org/flappy/1" + Given I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/7/levels/1" And I wait to see "#x-close" Then I see "#video" Then I see the first Flappy YouTube video with the correct parameters From 68b2e94508275ecd87c0c64b6ec534b330c2a03d Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 20:53:02 +0000 Subject: [PATCH 07/10] Repoint AI-assessments announcement test off prod flappy course Use ui-test-csf/units/1 as the non-AI unit page in place of courses/flappy/units/1. Co-Authored-By: Claude Opus 4.8 --- .../teacher_tools/rubrics/ai_assessments_announcement.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/teacher_tools/rubrics/ai_assessments_announcement.feature b/dashboard/test/ui/features/teacher_tools/rubrics/ai_assessments_announcement.feature index a6eb309eb2113..49d51c8ca8fd1 100644 --- a/dashboard/test/ui/features/teacher_tools/rubrics/ai_assessments_announcement.feature +++ b/dashboard/test/ui/features/teacher_tools/rubrics/ai_assessments_announcement.feature @@ -4,7 +4,7 @@ Feature: Announcement for AI Assessments Given I am a teacher # no announcement on non-ai units - When I am on "http://studio.code.org/courses/flappy/units/1" + When I am on "http://studio.code.org/courses/ui-test-csf/units/1" Then I wait until element "#uitest-no-ai-assessments-announcement" is visible # announcement visible on ai unit From 707dbed1cead6bf949ecfa5a426e08589c8eb3eb Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 21:34:22 +0000 Subject: [PATCH 08/10] Repoint dance age-filter test off prod dance course Second navigation (cookie-persistence check) now uses allthethingscourse L37/5 (Dance Lab #5) instead of courses/dance/units/1/lessons/1/levels/9. Line 3 was already on allthethings L37/1; this clears the last live courses/dance reference. Co-Authored-By: Claude Opus 4.8 --- dashboard/test/ui/features/star_labs/dance/age_filter2.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/star_labs/dance/age_filter2.feature b/dashboard/test/ui/features/star_labs/dance/age_filter2.feature index 9db0b1a2dd142..93496e178d605 100644 --- a/dashboard/test/ui/features/star_labs/dance/age_filter2.feature +++ b/dashboard/test/ui/features/star_labs/dance/age_filter2.feature @@ -13,7 +13,7 @@ Feature: Dance Lab Age Filter 2 And I see option "Synthesize" or "Steve Lacy - Bad Habit" in the dropdown "#song_selector" # session cookie should persist and no dialog should show up - Then I am on "http://studio.code.org/courses/dance/units/1/lessons/1/levels/9" + Then I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/37/levels/5" And I wait for the lab page to fully load And I wait for 3 seconds And I wait until I don't see selector "#p5_loading" From f6e2de906257f38934135265f1de5a6ef935d1e9 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 21:35:35 +0000 Subject: [PATCH 09/10] Stop seeding starwars and dance for UI tests [reset db] No running UI test references either course any more: all courses/ and tutorial-root URLs were repointed onto allthethingscourse (and ui-test-csf). The surviving references are seeding-independent -- /projects/{starwars,dance} standalone routes (global template levels), the create-dropdown / make-project project-type options, a @skip footer scenario, an eyes snapshot label, and an href-string check. The dance/starwars levels that allthethings reuses stay seeded globally via custom_levels regardless of this script removal. [reset db] so drone wipes and reseeds the DB, the only way a seed removal is actually validated. Co-Authored-By: Claude Opus 4.8 --- dashboard/lib/tasks/seed.rake | 4 ---- 1 file changed, 4 deletions(-) diff --git a/dashboard/lib/tasks/seed.rake b/dashboard/lib/tasks/seed.rake index 2ea8e90e91883..a8a2d960cdcfb 100644 --- a/dashboard/lib/tasks/seed.rake +++ b/dashboard/lib/tasks/seed.rake @@ -86,13 +86,11 @@ namespace :seed do alltheselfpacedplthings allthethings allthettsthings - dance flappy frozen hero hourofcode mc - starwars oceans mix-move-ai-2025 ).map {|script| "#{CURRICULUM_CONTENT_DIR}/config/scripts_json/#{script}.script_json"}.freeze @@ -258,7 +256,6 @@ namespace :seed do allthelessonplans alltheselfpacedplthings allthettsthings - dance flappy frozen hero @@ -267,7 +264,6 @@ namespace :seed do original-allthelessonplans-course original-allthethings-course original-alltheselfpacedplthings-course - starwars oceans mix-move-ai-2025).each do |course_name| UnitGroup.load_from_path("#{CURRICULUM_CONTENT_DIR}/config/courses/#{course_name}.course") From 73c373e1f2f734b1201ae572b68e8f8e7dcae822 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Mon, 22 Jun 2026 22:50:06 +0000 Subject: [PATCH 10/10] fix Dance Party free play level ui test step [reset db] --- dashboard/test/ui/features/step_definitions/dance.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/test/ui/features/step_definitions/dance.rb b/dashboard/test/ui/features/step_definitions/dance.rb index a55ab75308f96..2632c8182d906 100644 --- a/dashboard/test/ui/features/step_definitions/dance.rb +++ b/dashboard/test/ui/features/step_definitions/dance.rb @@ -7,7 +7,7 @@ Given /^I load the Dance Party free play level/i do individual_steps <<-STEPS - And I am on "http://studio.code.org/courses/dance/units/1/lessons/1/levels/13?noautoplay=true" + And I am on "http://studio.code.org/courses/allthethingscourse/units/1/lessons/37/levels/8?noautoplay=true" And I wait until I see selector "#runButton" And I bypass the age dialog And I close the instructions overlay if it exists