feat(playlists): библиотека плейлистов приложения
CRUD в редакторе, read-only окно на пульте, отдельный аудиоканал, экспорт/импорт и маппинг из Foundry. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -12,6 +12,7 @@ const SECONDARY_WINDOW_MAINS = [
|
||||
'npcs/npcsEditorMain.tsx',
|
||||
'npcs/npcsMain.tsx',
|
||||
'materials/main.tsx',
|
||||
'playlists/main.tsx',
|
||||
'sceneEditor/main.tsx',
|
||||
'sceneDescription/main.tsx',
|
||||
'control/main.tsx',
|
||||
@@ -125,6 +126,20 @@ void test('EditorApp: split Run button and launch-with-players modal', () => {
|
||||
assert.ok(editor.includes('top.runWithPlayers'));
|
||||
});
|
||||
|
||||
void test('EditorApp: Playlists header and modal', () => {
|
||||
const src = fs.readFileSync(path.join(rendererRoot, 'editor/EditorApp.tsx'), 'utf8');
|
||||
assert.ok(src.includes('data-testid="playlists-header-btn"'));
|
||||
assert.ok(src.includes('PlaylistsManagerModal'));
|
||||
assert.ok(src.includes('setPlaylistsManagerOpen(true)'));
|
||||
assert.ok(src.includes('setPlaylistsManagerOpen(false)'));
|
||||
});
|
||||
|
||||
void test('ControlApp: Playlists tool opens window', () => {
|
||||
const src = fs.readFileSync(path.join(rendererRoot, 'control/ControlApp.tsx'), 'utf8');
|
||||
assert.ok(src.includes('data-testid="control-playlists-tool"'));
|
||||
assert.ok(src.includes('windows.openPlaylists'));
|
||||
});
|
||||
|
||||
void test('PlayerTokenView: name plate shows full text without ellipsis', () => {
|
||||
const css = fs.readFileSync(
|
||||
path.join(rendererRoot, 'shared/playerToken/PlayerTokenView.module.css'),
|
||||
|
||||
Reference in New Issue
Block a user