import assert from 'node:assert/strict';
import fs from 'node:fs';
import path from 'node:path';
import test from 'node:test';
import { fileURLToPath } from 'node:url';

const here = path.dirname(fileURLToPath(import.meta.url));

function readSceneGraph(): string {
  return fs.readFileSync(path.join(here, 'SceneGraph.tsx'), 'utf8');
}

void test('SceneGraph: контекстное меню узла — «Запустить с этой сцены»', () => {
  const src = readSceneGraph();
  assert.ok(src.includes('runFromScene'));
  assert.ok(src.includes('onRunFromGraphNode'));
  assert.ok(src.includes('onRunFromGraphNode?.(menu.graphNodeId)'));
});

void test('SceneGraph: побочная линия — меню старта и скрытие Run', () => {
  const src = readSceneGraph();
  assert.ok(src.includes('sideStoryStartScene'));
  assert.ok(src.includes('onSetGraphNodeSideStoryStart'));
  assert.ok(src.includes('menuNodeIsSideBranch'));
  assert.ok(src.includes('badgeSideStory'));
});
