-
-
Notifications
You must be signed in to change notification settings - Fork 10
feat: Add table for ABS (#2919) #2936
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdds a new ABSProvider for "AtCoder Beginners Selection", registers it in provider presets/groups, expands test fixtures and Prisma data for ABS tasks, and introduces a comprehensive ABS-focused test suite and test plan documenting expected behaviors and verification steps. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro Cache: Disabled due to data retention organization setting Knowledge base: Disabled due to data retention organization setting 📒 Files selected for processing (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
src/lib/utils/contest_table_provider.ts (1)
136-163: LGTM! ABSProvider follows established patterns.The implementation is consistent with similar single-contest providers like
Typical90Provider. The filter condition correctly usesclassifyContestto matchContestType.ABS, and the display configuration appropriately hides headers and round labels since ABS is a single collection of problems.One minor style suggestion: consider prefixing the unused
contestIdparameter with an underscore to indicate it's intentionally unused.- getContestRoundLabel(contestId: string): string { + getContestRoundLabel(_contestId: string): string { return ''; }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge base: Disabled due to data retention organization setting
📒 Files selected for processing (6)
docs/dev-notes/2025-12-11/add_tests_for_contest_table_provider/plan.md(1 hunks)prisma/contest_task_pairs.ts(1 hunks)prisma/tasks.ts(2 hunks)src/lib/utils/contest_table_provider.ts(3 hunks)src/test/lib/utils/contest_table_provider.test.ts(3 hunks)src/test/lib/utils/test_cases/contest_table_provider.ts(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
src/test/lib/utils/test_cases/contest_table_provider.ts (1)
src/lib/types/task.ts (1)
TaskResults(74-74)
src/lib/utils/contest_table_provider.ts (3)
src/lib/types/task.ts (1)
TaskResult(64-72)src/lib/utils/contest.ts (1)
classifyContest(5-97)src/lib/types/contest_table_provider.ts (2)
ContestTableMetaData(122-125)ContestTableDisplayConfig(149-155)
🪛 markdownlint-cli2 (0.18.1)
docs/dev-notes/2025-12-11/add_tests_for_contest_table_provider/plan.md
395-395: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: preview
🔇 Additional comments (8)
prisma/tasks.ts (1)
4512-4574: ABS source problem entries look consistent and correctThe added task records for the ABS component problems (abc088_b, abc087_b, arc089_a, abc086_a, abc085_c, abc085_b, abc083_b, abc081_b, abc081_a, arc065_a) use the expected
id, originalcontest_id,problem_index, and titles, and fit the existing schema without introducing new fields. No issues from a data- or type-consistency perspective.Also applies to: 4610-4616
prisma/contest_task_pairs.ts (1)
2-51: ABS contest-task mappings are coherent with the ABS problem listThe new
contest_task_pairsentries forcontest_id: 'abs'correctly remap the underlying problems (practice_1 excluded because it is already native toabs) to indices B–K in the documented ABS order. This is consistent with the task IDs added inprisma/tasks.tsand with how other virtual contests are modeled.src/test/lib/utils/test_cases/contest_table_provider.ts (1)
419-449: ABS test data block is well-structured and consistentThe ABS test dataset (abs_a–abs_k) cleanly mirrors the real ABS problem set: correct
taskId/taskTableIndexmapping, ordered A–K, and a deliberate mix of statuses (AC/AC_WITH_EDITORIAL/TRYING/PENDING) useful for exercising provider behavior. It follows the existingcreateContestTaskspattern and integrates cleanly via thetaskResultsForABSexport.src/lib/utils/contest_table_provider.ts (2)
919-926: LGTM! Preset registration is correct.The ABS preset follows the same pattern as other single-provider groups (e.g.,
Typical90,MathAndAlgorithm). The button label is appropriately concise, and the aria label provides accessibility context.
1073-1073: LGTM! ABS group exported correctly.The
abskey is appropriately registered and follows the naming convention used by other groups.src/test/lib/utils/contest_table_provider.test.ts (3)
7-7: LGTM! Imports updated correctly.The
ABSProviderandtaskResultsForABSimports are properly added to support the new test suite.Also applies to: 35-35
43-45: LGTM! Mock updated correctly.The mock correctly handles the
'abs'contest ID before checkingstartsWith('abc'), which ensures proper classification since 'abs' starts with 'ab' but should not match the ABC pattern.
205-325: LGTM! Comprehensive ABS test suite.The test suite provides excellent coverage:
- Filtering logic validated with both pure ABS and mixed contest data
- All metadata and display configuration values verified
- Table structure confirmed to have all 11 problems (A-K)
- Multi-source verification at lines 289-310 is a thoughtful domain-specific test that confirms ABS problems originate from various AtCoder contests
- Empty input edge case properly handled
The tests follow the established patterns used by other provider tests in this file.
docs/dev-notes/2025-12-11/add_tests_for_contest_table_provider/plan.md
Outdated
Show resolved
Hide resolved
KATO-Hiro
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
close #2919
Summary by CodeRabbit
New Features
Tests
Chores
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.