-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test(frontend): fix component error in
MkChart
story (#14056)
- Loading branch information
Showing
3 changed files
with
52 additions
and
44 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/* | ||
* SPDX-FileCopyrightText: syuilo and misskey-project | ||
* SPDX-License-Identifier: AGPL-3.0-only | ||
*/ | ||
|
||
import { DefaultBodyType, HttpResponse, HttpResponseResolver, JsonBodyType, PathParams, http } from 'msw'; | ||
import seedrandom from 'seedrandom'; | ||
import { action } from '@storybook/addon-actions'; | ||
|
||
function getChartArray(seed: string, limit: number, option?: { accumulate?: boolean, mul?: number }): number[] { | ||
const rng = seedrandom(seed); | ||
const max = Math.floor(option?.mul ?? 250 * rng()); | ||
let accumulation = 0; | ||
const array: number[] = []; | ||
for (let i = 0; i < limit; i++) { | ||
const num = Math.floor((max + 1) * rng()); | ||
if (option?.accumulate) { | ||
accumulation += num; | ||
array.unshift(accumulation); | ||
} else { | ||
array.push(num); | ||
} | ||
} | ||
return array; | ||
} | ||
|
||
export function getChartResolver(fields: string[], option?: { accumulate?: boolean, mulMap?: Record<string, number> }): HttpResponseResolver<PathParams, DefaultBodyType, JsonBodyType> { | ||
return ({ request }) => { | ||
action(`GET ${request.url}`)(); | ||
const limitParam = new URL(request.url).searchParams.get('limit'); | ||
const limit = limitParam ? parseInt(limitParam) : 30; | ||
const res = {}; | ||
for (const field of fields) { | ||
const layers = field.split('.'); | ||
let current = res; | ||
while (layers.length > 1) { | ||
const currentKey = layers.shift()!; | ||
if (current[currentKey] == null) current[currentKey] = {}; | ||
current = current[currentKey]; | ||
} | ||
current[layers[0]] = getChartArray(field, limit, { | ||
accumulate: option?.accumulate, | ||
mul: option?.mulMap != null && field in option.mulMap ? option.mulMap[field] : undefined, | ||
}); | ||
} | ||
return HttpResponse.json(res); | ||
}; | ||
} |
This file contains 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
This file contains 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