GitNexus/gitnexus/test/integration/resolvers/fetch-wrapper-consumers.test.ts

44 lines
1.4 KiB
TypeScript

import { describe, it, expect, beforeAll } from 'vitest';
import path from 'path';
import {
FIXTURES,
getRelationships,
getNodesByLabel,
runPipelineFromRepo,
type PipelineResult,
} from './helpers.js';
describe('Fetch wrapper consumer FETCHES edge extraction', () => {
let result: PipelineResult;
beforeAll(async () => {
result = await runPipelineFromRepo(path.join(FIXTURES, 'fetch-wrapper-consumers'), () => {});
}, 60000);
it('creates Route nodes for API endpoints', () => {
const routes = getNodesByLabel(result, 'Route');
expect(routes).toContain('/api/grants');
expect(routes).toContain('/api/users');
});
it('creates FETCHES edge from GrantsList via apiFetch wrapper', () => {
const edges = getRelationships(result, 'FETCHES');
const grantsEdge = edges.find(
(e) => e.sourceFilePath.includes('GrantsList') && e.target === '/api/grants',
);
expect(grantsEdge).toBeDefined();
});
it('creates FETCHES edge from UserList via apiFetch wrapper', () => {
const edges = getRelationships(result, 'FETCHES');
const usersEdge = edges.find(
(e) => e.sourceFilePath.includes('UserList') && e.target === '/api/users',
);
expect(usersEdge).toBeDefined();
});
it('produces the correct total number of FETCHES edges', () => {
const edges = getRelationships(result, 'FETCHES');
expect(edges.length).toBe(2);
});
});