@@ -21,6 +21,7 @@ import {
2121 ContestTableProviderGroup ,
2222 prepareContestProviderPresets ,
2323} from '$lib/utils/contest_table_provider' ;
24+ import { TESSOKU_SECTIONS } from '$lib/types/contest_table_provider' ;
2425import { taskResultsForContestTableProvider } from './test_cases/contest_table_provider' ;
2526
2627// Mock the imported functions
@@ -1098,8 +1099,11 @@ describe('ContestTableProviderGroup', () => {
10981099 } ) ;
10991100
11001101 test ( 'expects createProviderKey to generate correct composite key with section' , ( ) => {
1101- const key = ContestTableProviderBase . createProviderKey ( ContestType . TESSOKU_BOOK , 'examples' ) ;
1102- expect ( key ) . toBe ( 'TESSOKU_BOOK::examples' ) ;
1102+ const key = ContestTableProviderBase . createProviderKey (
1103+ ContestType . TESSOKU_BOOK ,
1104+ TESSOKU_SECTIONS . EXAMPLES ,
1105+ ) ;
1106+ expect ( key ) . toBe ( `TESSOKU_BOOK::${ TESSOKU_SECTIONS . EXAMPLES } ` ) ;
11031107 // Verify key contains section separator
11041108 expect ( key ) . toContain ( '::' ) ;
11051109 } ) ;
@@ -1109,9 +1113,15 @@ describe('ContestTableProviderGroup', () => {
11091113 const practicalsProvider = new TessokuBookForPracticalsProvider ( ContestType . TESSOKU_BOOK ) ;
11101114 const challengesProvider = new TessokuBookForChallengesProvider ( ContestType . TESSOKU_BOOK ) ;
11111115
1112- expect ( examplesProvider [ 'getProviderKey' ] ( ) ) . toBe ( 'TESSOKU_BOOK::examples' ) ;
1113- expect ( practicalsProvider [ 'getProviderKey' ] ( ) ) . toBe ( 'TESSOKU_BOOK::practicals' ) ;
1114- expect ( challengesProvider [ 'getProviderKey' ] ( ) ) . toBe ( 'TESSOKU_BOOK::challenges' ) ;
1116+ expect ( examplesProvider [ 'getProviderKey' ] ( ) ) . toBe (
1117+ `TESSOKU_BOOK::${ TESSOKU_SECTIONS . EXAMPLES } ` ,
1118+ ) ;
1119+ expect ( practicalsProvider [ 'getProviderKey' ] ( ) ) . toBe (
1120+ `TESSOKU_BOOK::${ TESSOKU_SECTIONS . PRACTICALS } ` ,
1121+ ) ;
1122+ expect ( challengesProvider [ 'getProviderKey' ] ( ) ) . toBe (
1123+ `TESSOKU_BOOK::${ TESSOKU_SECTIONS . CHALLENGES } ` ,
1124+ ) ;
11151125 } ) ;
11161126
11171127 test ( 'expects multiple TessokuBook providers to be stored separately in group' , ( ) => {
@@ -1127,9 +1137,15 @@ describe('ContestTableProviderGroup', () => {
11271137 group . addProviders ( examplesProvider , practicalsProvider , challengesProvider ) ;
11281138
11291139 expect ( group . getSize ( ) ) . toBe ( 3 ) ;
1130- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'examples' ) ) . toBe ( examplesProvider ) ;
1131- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'practicals' ) ) . toBe ( practicalsProvider ) ;
1132- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'challenges' ) ) . toBe ( challengesProvider ) ;
1140+ expect ( group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . EXAMPLES ) ) . toBe (
1141+ examplesProvider ,
1142+ ) ;
1143+ expect ( group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . PRACTICALS ) ) . toBe (
1144+ practicalsProvider ,
1145+ ) ;
1146+ expect ( group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . CHALLENGES ) ) . toBe (
1147+ challengesProvider ,
1148+ ) ;
11331149 } ) ;
11341150
11351151 test ( 'expects backward compatibility for getProvider without section' , ( ) => {
@@ -1155,8 +1171,12 @@ describe('ContestTableProviderGroup', () => {
11551171 const examplesProvider = new TessokuBookForExamplesProvider ( ContestType . TESSOKU_BOOK ) ;
11561172 group . addProvider ( examplesProvider ) ;
11571173
1158- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'examples' ) ) . toBe ( examplesProvider ) ;
1159- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'practicals' ) ) . toBeUndefined ( ) ;
1174+ expect ( group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . EXAMPLES ) ) . toBe (
1175+ examplesProvider ,
1176+ ) ;
1177+ expect (
1178+ group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . PRACTICALS ) ,
1179+ ) . toBeUndefined ( ) ;
11601180 expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'invalid' ) ) . toBeUndefined ( ) ;
11611181 } ) ;
11621182 } ) ;
@@ -1234,13 +1254,13 @@ describe('prepareContestProviderPresets', () => {
12341254 ariaLabel : 'Filter Tessoku Book' ,
12351255 } ) ;
12361256 expect ( group . getSize ( ) ) . toBe ( 3 ) ;
1237- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'examples' ) ) . toBeInstanceOf (
1257+ expect ( group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . EXAMPLES ) ) . toBeInstanceOf (
12381258 TessokuBookForExamplesProvider ,
12391259 ) ;
1240- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'practicals' ) ) . toBeInstanceOf (
1260+ expect ( group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . PRACTICALS ) ) . toBeInstanceOf (
12411261 TessokuBookForPracticalsProvider ,
12421262 ) ;
1243- expect ( group . getProvider ( ContestType . TESSOKU_BOOK , 'challenges' ) ) . toBeInstanceOf (
1263+ expect ( group . getProvider ( ContestType . TESSOKU_BOOK , TESSOKU_SECTIONS . CHALLENGES ) ) . toBeInstanceOf (
12441264 TessokuBookForChallengesProvider ,
12451265 ) ;
12461266 } ) ;
0 commit comments