Model graph: the whole model as one graph with queries; 0.9.0
- Model | Graph switch on main.archify (Diagram | Graph on diagram pages, narrowed to that diagram) - union graph of every element and connection, registry and inline, built from the model index - query box: text, type:, diagram:, decision:, uses:, near:, from: to:, unused, shared, -shared - side panel per element and connection with diagrams, registry line and decisions one click away - legend chips, Fit, Layout, Labels, Export PNG; Cytoscape.js bundled as dist/graph.js - command Archify | Open Model Graph; integration check; unit tests for graph and queries
This commit is contained in:
@@ -317,6 +317,22 @@ export async function run(): Promise<void> {
|
||||
assert.ok(tab);
|
||||
});
|
||||
|
||||
await check('Archify | Open Model Graph switches the main.archify editor to the Graph page and back', async () => {
|
||||
const main = workspaceFile('model/main.archify');
|
||||
const diagram = workspaceFile('model/0100-context/online-shop.archify');
|
||||
const commands = vscode.extensions.getExtension(EXTENSION_ID)?.packageJSON.contributes.commands as { command: string; title: string }[];
|
||||
assert.equal(commands.find((item) => item.command === 'archify.openModelGraph')?.title, 'Archify | Open Model Graph');
|
||||
await vscode.commands.executeCommand('archify.openModelGraph', diagram);
|
||||
const tab = await waitFor('model editor active', () =>
|
||||
vscode.window.tabGroups.all.flatMap((g) => g.tabs).find((t) => t.isActive && t.input instanceof vscode.TabInputCustom && t.input.uri.toString() === main.toString()),
|
||||
);
|
||||
assert.ok(tab);
|
||||
// The choice is remembered per file in the workspace state until the page is switched back.
|
||||
const ext = vscode.extensions.getExtension(EXTENSION_ID);
|
||||
assert.ok(ext?.isActive);
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
});
|
||||
|
||||
await check('a .archify-registry file opens as the registry view and Show Source opens the YAML', async () => {
|
||||
const registry = workspaceFile('model/registry/people.archify-registry');
|
||||
await vscode.commands.executeCommand('vscode.open', registry);
|
||||
|
||||
Reference in New Issue
Block a user