Skip to content

JSON.parse(JSON.stringify())の代わりにstructuredClone(toRaw())を使うようにするESLintルール #5900

JSON.parse(JSON.stringify())の代わりにstructuredClone(toRaw())を使うようにするESLintルール

JSON.parse(JSON.stringify())の代わりにstructuredClone(toRaw())を使うようにするESLintルール #5900

Triggered via pull request January 28, 2024 03:21
Status Failure
Total duration 6m 9s
Artifacts

test.yml

on: pull_request
Matrix: e2e-test
commit-snapshots
7s
commit-snapshots
Fit to window
Zoom out
Zoom in

Annotations

23 errors, 8 warnings, and 6 notices
lint: src/components/DefaultStyleSelectDialog.vue#L214
'JSON.stringify(JSON.parse(store.state.defaultStyleIds))'ではなく'structuredClone(toRaw(store.state.defaultStyleIds))'を使用してください。
lint: src/store/audio.ts#L60
'JSON.stringify(JSON.parse(audioItem))'ではなく'structuredClone(toRaw(audioItem))'を使用してください。
lint: src/store/audio.ts#L1278
'JSON.stringify(JSON.parse(state.audioItems[audioKey]))'ではなく'structuredClone(toRaw(state.audioItems[audioKey]))'を使用してください。
lint: src/store/audio.ts#L2185
'JSON.stringify(JSON.parse(query.accentPhrases))'ではなく'structuredClone(toRaw(query.accentPhrases))'を使用してください。
lint: src/store/audio.ts#L2247
'JSON.stringify(JSON.parse(query.accentPhrases))'ではなく'structuredClone(toRaw(query.accentPhrases))'を使用してください。
lint: src/store/preset.ts#L171
'JSON.stringify(JSON.parse(presetItems))'ではなく'structuredClone(toRaw(presetItems))'を使用してください。
lint: src/store/preset.ts#L172
'JSON.stringify(JSON.parse(presetKeys))'ではなく'structuredClone(toRaw(presetKeys))'を使用してください。
lint: src/store/utility.ts#L224
'JSON.stringify(JSON.parse(beforeAccent))'ではなく'structuredClone(toRaw(beforeAccent))'を使用してください。
lint: src/store/utility.ts#L225
'JSON.stringify(JSON.parse(afterAccent))'ではなく'structuredClone(toRaw(afterAccent))'を使用してください。
lint
Process completed with exit code 1.
build-test: src/components/DefaultStyleSelectDialog.vue#L214
'JSON.stringify(JSON.parse(store.state.defaultStyleIds))'ではなく'structuredClone(toRaw(store.state.defaultStyleIds))'を使用してください。
build-test: src/store/audio.ts#L60
'JSON.stringify(JSON.parse(audioItem))'ではなく'structuredClone(toRaw(audioItem))'を使用してください。
build-test: src/store/audio.ts#L1278
'JSON.stringify(JSON.parse(state.audioItems[audioKey]))'ではなく'structuredClone(toRaw(state.audioItems[audioKey]))'を使用してください。
build-test: src/store/audio.ts#L2185
'JSON.stringify(JSON.parse(query.accentPhrases))'ではなく'structuredClone(toRaw(query.accentPhrases))'を使用してください。
build-test: src/store/audio.ts#L2247
'JSON.stringify(JSON.parse(query.accentPhrases))'ではなく'structuredClone(toRaw(query.accentPhrases))'を使用してください。
build-test: src/store/preset.ts#L171
'JSON.stringify(JSON.parse(presetItems))'ではなく'structuredClone(toRaw(presetItems))'を使用してください。
build-test: src/store/preset.ts#L172
'JSON.stringify(JSON.parse(presetKeys))'ではなく'structuredClone(toRaw(presetKeys))'を使用してください。
build-test: src/store/utility.ts#L224
'JSON.stringify(JSON.parse(beforeAccent))'ではなく'structuredClone(toRaw(beforeAccent))'を使用してください。
build-test: src/store/utility.ts#L225
'JSON.stringify(JSON.parse(afterAccent))'ではなく'structuredClone(toRaw(afterAccent))'を使用してください。
build-test
Process completed with exit code 1.
[browser] › browser\音声パラメータ.spec.ts:12:5 › 音声パラメータ引き継ぎの設定: tests\e2e\browser\音声パラメータ.spec.ts#L9
1) [browser] › browser\音声パラメータ.spec.ts:12:5 › 音声パラメータ引き継ぎの設定 ───────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: "1.00" Received: "0.50" 7 | async function validateValue(locator: Locator, expectedValue: string) { 8 | const value = await locator.evaluate((e: HTMLInputElement) => e.value); > 9 | expect(value).toBe(expectedValue); | ^ 10 | } 11 | 12 | test("音声パラメータ引き継ぎの設定", async ({ page }) => { at validateValue (D:\a\voicevox\voicevox\tests\e2e\browser\音声パラメータ.spec.ts:9:17) at D:\a\voicevox\voicevox\tests\e2e\browser\音声パラメータ.spec.ts:37:3
[browser] › browser/アクセント.spec.ts:7:5 › アクセント分割したらアクセント区間が増える: tests/e2e/browser/アクセント.spec.ts#L13
1) [browser] › browser/アクセント.spec.ts:7:5 › アクセント分割したらアクセント区間が増える ───────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: 1 Received: 0 11 | await page.locator(".audio-cell input").first().press("Enter"); 12 | await page.waitForTimeout(500); > 13 | expect(await page.locator(".mora-table").count()).toBe(1); | ^ 14 | await (await page.locator(".splitter-cell").all())[1].click(); 15 | await page.waitForTimeout(500); 16 | expect(await page.locator(".mora-table").count()).toBe(2); at /Users/runner/work/voicevox/voicevox/tests/e2e/browser/アクセント.spec.ts:13:53
[browser] › browser/ツールバーカスタマイズダイアログ.spec.ts:8:5 › ツールバーのカスタマイズでボタンを追加でき、デフォルトに戻すこともできる: tests/e2e/browser/ツールバーカスタマイズダイアログ.spec.ts#L26
2) [browser] › browser/ツールバーカスタマイズダイアログ.spec.ts:8:5 › ツールバーのカスタマイズでボタンを追加でき、デフォルトに戻すこともできる ─────── Error: expect.toBeVisible: Error: strict mode violation: getByText('ツールバーのカスタマイズ') resolved to 2 elements: 1) <div data-v-ff8a05d9="" class="q-item__section column…>ツールバーのカスタマイズ</div> aka locator('#q-portal--menu--5').getByText('ツールバーのカスタマイズ') 2) <div data-v-d4bd8f9e="" class="q-toolbar__title ellip…>ツールバーのカスタマイズ</div> aka locator('#q-portal--dialog--6').getByText('ツールバーのカスタマイズ') Call log: - expect.toBeVisible with timeout 5000ms - waiting for getByText('ツールバーのカスタマイズ') 24 | await getQuasarMenu(page, "ツールバーのカスタマイズ").click(); 25 | await page.waitForTimeout(100); > 26 | await expect(page.getByText("ツールバーのカスタマイズ")).toBeVisible(); | ^ 27 | 28 | // 全部書き出しボタンを追加する 29 | expect( at /Users/runner/work/voicevox/voicevox/tests/e2e/browser/ツールバーカスタマイズダイアログ.spec.ts:26:48
lint
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
unit-test
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
build-test
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
e2e-test (ubuntu-latest)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
e2e-test (windows-latest)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
e2e-test (macos-latest)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Slow Test: [electron] › electron/example.spec.ts#L1
[electron] › electron/example.spec.ts took 23.6s
commit-snapshots
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
🎭 Playwright Run Summary
1 skipped 20 passed (1.5m)
🎭 Playwright Run Summary
1 passed (46.5s)
🎭 Playwright Run Summary
1 flaky [browser] › browser\音声パラメータ.spec.ts:12:5 › 音声パラメータ引き継ぎの設定 ────────────────────────────────────── 20 passed (2.1m)
🎭 Playwright Run Summary
1 passed (49.2s)
🎭 Playwright Run Summary
2 flaky [browser] › browser/アクセント.spec.ts:7:5 › アクセント分割したらアクセント区間が増える ────────────────────────────────── [browser] › browser/ツールバーカスタマイズダイアログ.spec.ts:8:5 › ツールバーのカスタマイズでボタンを追加でき、デフォルトに戻すこともできる ──────── 1 skipped 18 passed (2.5m)
🎭 Playwright Run Summary
1 passed (30.5s)