test: add GitHub Classroom setup verification suite#189
Merged
accesswatch merged 1 commit intomainfrom May 5, 2026
Merged
Conversation
Contributor
Peer Review AssignedHi @accesswatch! Your PR has been automatically paired with @taylorarndt for peer review. For @taylorarndt:This is a great opportunity to practice code review skills! Here's what to look for: Content Quality:
Accessibility:
Documentation:
Review Guidelines:
Resources: Pairing by Learning Room Grouping Engine |
There was a problem hiding this comment.
Pull request overview
This PR adds a new Node.js node:test suite to proactively verify GitHub Classroom cohort-deployment readiness by checking that required classroom artifacts exist and that key configuration files are internally consistent.
Changes:
- Adds a comprehensive “classroom setup verification” test file that validates required classroom files, seeding script references, assignment descriptors, and autograding JSON structure.
- Adds checks for key workflow configuration expectations (permissions + concurrency) and basic “architecture invariant” assertions against
classroom/README.md. - Adds a “template readiness” check that asserts a curated set of learning-room files/templates exist.
Comment on lines
+188
to
+199
| const required = [ | ||
| ['challenge 4', 'challenge 5', 'commit'], // branch or commit evidence | ||
| ['challenge 5', 'commit', 'branch'], | ||
| ['challenge 6', 'closes', 'issue link', 'pr'], | ||
| ['challenge 7', 'conflict marker', 'conflict'], | ||
| ]; | ||
|
|
||
| required.forEach(variants => { | ||
| const found = names.some(n => variants.some(v => n.includes(v))); | ||
| assert.ok( | ||
| found, | ||
| `autograding-day1.json should cover one of: ${variants.join(' / ')}` |
| // The README says: do **not** need to ... become members of `Community-Access` | ||
| assert.match( | ||
| readme, | ||
| /do\s+\*{0,2}not\*{0,2}\s+need|not.*need.*member|not.*org.*member/i, |
| '.github/scripts/challenge-progression.js', | ||
| '.github/scripts/validate-pr.js', | ||
| '.github/scripts/validation-report.js', | ||
| '.github/scripts/comment-responder.js', |
Comment on lines
+504
to
+516
| // Confirm the README explicitly states there is no shared student repository. | ||
| assert.match( | ||
| readme, | ||
| /no shared student repository|replaced by GitHub Classroom/i, | ||
| 'classroom README should explicitly state there is no shared student repository' | ||
| ); | ||
| // The active guidance must not instruct facilitators to create one shared repo | ||
| // for all students (as the old multi-player sandbox model did). | ||
| assert.doesNotMatch( | ||
| activeReadme, | ||
| /(?:use|create|provision|set up)\s+(?:a\s+)?shared\s+(?:student\s+)?repo/i, | ||
| 'classroom README active guidance must not instruct facilitators to create a shared student repo' | ||
| ); |
Comment on lines
+204
to
+212
| test('autograding day 2 covers challenges 10 through 16 at minimum', () => { | ||
| const tests = readJson(autogradingDay2Path); | ||
| const names = tests.map(t => (t.test_name || '').toLowerCase()); | ||
| const required = [ | ||
| ['challenge 10', 'local commit', 'go local'], | ||
| ['challenge 14', 'template', 'yaml'], | ||
| ['challenge 16', 'capstone', 'agent'], | ||
| ]; | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds .github/scripts/tests/classroom-setup.test.js\ - 20 new automated tests that verify every artifact required for a successful GitHub Classroom cohort deployment before a facilitator creates a classroom or runs a workshop.
What is tested:
Result: 88/88 total tests pass (was 68)