mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-30 04:50:04 +00:00
## Summary Split mask editor structure into smaller files ## Changes This PR is a prerequisite step for [the issue - refactoring the mask editor using Vue](https://github.com/Comfy-Org/ComfyUI_frontend/issues/5956). It splits the current monolithic maskeditor.ts (about 5700 lines) into separate files; otherwise, the original single file would be very difficult to analyze or maintain. This PR itself does not introduce any Vue, nor should it have any functional changes or modifications. It's purely a code-level split, with all related files placed in the maskeditor folder. The original maskeditor.ts has been renamed to maskeditor.ts.backup for future reference. ## Review Focus Since this PR is only for splitting purposes, all logic remains consistent with the original. Therefore, for any reviewer: any code logic improvements should happen in the subsequent Vue-based refactoring, not in this PR. Following this PR, I will perform a Vue-based refactoring of the mask editor to align with the frontend's overall Vue architecture and provide better cloud-related support. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6308-refactor-Split-mask-editor-into-smaller-files-2986d73d36508131937dd43e465a47bd) by [Unito](https://www.unito.io)
20 lines
1003 B
TypeScript
20 lines
1003 B
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { imageLayerFilenamesIfApplicable } from '@/extensions/core/maskeditor/utils/maskEditorLayerFilenames'
|
|
|
|
describe('imageLayerFilenamesIfApplicable', () => {
|
|
// In case the naming scheme changes, this test will ensure CI fails if developers forget to support the old naming scheme. (Causing MaskEditor to lose layer data for previously-saved images.)
|
|
it('should support all past layer naming schemes to preserve backward compatibility', async () => {
|
|
const dummyTimestamp = 1234567890
|
|
const inputToSupport = `clipspace-painted-masked-${dummyTimestamp}.png`
|
|
const expectedOutput = {
|
|
maskedImage: `clipspace-mask-${dummyTimestamp}.png`,
|
|
paint: `clipspace-paint-${dummyTimestamp}.png`,
|
|
paintedImage: `clipspace-painted-${dummyTimestamp}.png`,
|
|
paintedMaskedImage: inputToSupport
|
|
}
|
|
const actualOutput = imageLayerFilenamesIfApplicable(inputToSupport)
|
|
expect(actualOutput).toEqual(expectedOutput)
|
|
})
|
|
})
|