Fix findUsages/undo/node-lookup bugs, split Viewport and Editor, share command and inspector helpers

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Opus 5 committed 2026-09-08 09:22:49 +02:00
1 parent 1eb28314cf
commit f140c2fd77
58 files changed
+1969 -1171

No files matched your search

+15 -1
View File
@@ -1,5 +1,6 @@
import { describe, expect, it } from 'vitest';
import { DisconnectCommand, RemoveNodeCommand, SetNodeParamCommand } from '../../src/core/commands/graphCommands';
import { CommandError } from '../../src/core/commands/Command';
import { AddNodeCommand, DisconnectCommand, RemoveNodeCommand, SetNodeParamCommand } from '../../src/core/commands/graphCommands';
import { AddVariableCommand, RemoveVariableCommand, RenameVariableCommand } from '../../src/core/commands/variableCommands';
import { GraphInterpreter, allNodeDefs, findNode, portsCompatible } from '../../src/core/graph';
import type { BehaviorAsset } from '../../src/core/model/Asset';
@@ -296,3 +297,16 @@ describe('behavior serialization', () => {
expect(cleaned.graph.edges.length).toBe(behavior.graph.edges.length);
});
});
describe('unknown node types', () => {
it('are rejected as a CommandError by execute, not thrown from the constructor', () => {
const fixture = makeProject();
const behavior = makeBehavior(fixture, 'B');
// Building the command must not throw: callers construct it outside the editor's
// error handling (`state.execute(new AddNodeCommand(…))`), so a throw here would crash.
const command = new AddNodeCommand(behavior.id, 'DoesNotExist', 0, 0);
expect(command.label).toBe('Add DoesNotExist');
expect(() => command.execute(fixture.project)).toThrow(CommandError);
expect(behavior.graph.nodes).toHaveLength(0);
});
});