@@ -123,19 +123,85 @@ describe("Result Utils", () => {
123123 } ) ;
124124 } ) ;
125125
126+ describe ( "legacy chartData conversion" , ( ) => {
127+ it ( "should convert chartData with 'raw' property to 'burst'" , ( ) => {
128+ const resultWithLegacyChartData : DBResult = {
129+ chartData : {
130+ wpm : [ 50 , 55 , 60 ] ,
131+ raw : [ 52 , 57 , 62 ] ,
132+ err : [ 1 , 0 , 2 ] ,
133+ } as any ,
134+ } as any ;
135+
136+ const result = replaceLegacyValues ( resultWithLegacyChartData ) ;
137+
138+ expect ( result . chartData ) . toEqual ( {
139+ wpm : [ 50 , 55 , 60 ] ,
140+ burst : [ 52 , 57 , 62 ] ,
141+ err : [ 1 , 0 , 2 ] ,
142+ } ) ;
143+ } ) ;
144+
145+ it ( "should not convert chartData when it's 'toolong'" , ( ) => {
146+ const resultWithToolongChartData : DBResult = {
147+ chartData : "toolong" ,
148+ } as any ;
149+
150+ const result = replaceLegacyValues ( resultWithToolongChartData ) ;
151+
152+ expect ( result . chartData ) . toBe ( "toolong" ) ;
153+ } ) ;
154+
155+ it ( "should not convert chartData when it doesn't have 'raw' property" , ( ) => {
156+ const resultWithModernChartData : DBResult = {
157+ chartData : {
158+ wpm : [ 50 , 55 , 60 ] ,
159+ burst : [ 52 , 57 , 62 ] ,
160+ err : [ 1 , 0 , 2 ] ,
161+ } ,
162+ } as any ;
163+
164+ const result = replaceLegacyValues ( resultWithModernChartData ) ;
165+
166+ expect ( result . chartData ) . toEqual ( {
167+ wpm : [ 50 , 55 , 60 ] ,
168+ burst : [ 52 , 57 , 62 ] ,
169+ err : [ 1 , 0 , 2 ] ,
170+ } ) ;
171+ } ) ;
172+
173+ it ( "should not convert chartData when it's undefined" , ( ) => {
174+ const resultWithoutChartData : DBResult = { } as any ;
175+
176+ const result = replaceLegacyValues ( resultWithoutChartData ) ;
177+
178+ expect ( result . chartData ) . toBeUndefined ( ) ;
179+ } ) ;
180+ } ) ;
181+
126182 it ( "should convert all legacy data at once" , ( ) => {
127- const resultWithBothLegacy : DBResult = {
183+ const resultWithAllLegacy : DBResult = {
128184 correctChars : 100 ,
129185 incorrectChars : 8 ,
130186 funbox : "memory#mirror" as any ,
187+ chartData : {
188+ wpm : [ 50 , 55 , 60 ] ,
189+ raw : [ 52 , 57 , 62 ] ,
190+ err : [ 1 , 0 , 2 ] ,
191+ } as any ,
131192 } as any ;
132193
133- const result = replaceLegacyValues ( resultWithBothLegacy ) ;
194+ const result = replaceLegacyValues ( resultWithAllLegacy ) ;
134195
135196 expect ( result . charStats ) . toEqual ( [ 100 , 8 , 0 , 0 ] ) ;
136197 expect ( result . correctChars ) . toBeUndefined ( ) ;
137198 expect ( result . incorrectChars ) . toBeUndefined ( ) ;
138199 expect ( result . funbox ) . toEqual ( [ "memory" , "mirror" ] ) ;
200+ expect ( result . chartData ) . toEqual ( {
201+ wpm : [ 50 , 55 , 60 ] ,
202+ burst : [ 52 , 57 , 62 ] ,
203+ err : [ 1 , 0 , 2 ] ,
204+ } ) ;
139205 } ) ;
140206
141207 describe ( "no legacy values" , ( ) => {
0 commit comments