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:
1 parent
1eb28314cf
commit
f140c2fd77
58 files changed
+1969
-1171
No files matched your search
@@ -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);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user