import { describe, it } from 'node:test';
import { expect } from 'chai';
import { parse } from '../../language/parser.ts';
import { GraphQLSchema } from '../../type/schema.ts';
import { TypeInfo } from '../../utilities/TypeInfo.ts';
import {
ASTValidationContext,
SDLValidationContext,
ValidationContext,
} from '../ValidationContext.ts';
describe('ValidationContext', () => {
it('can be Object.toStringified', () => {
const schema = new GraphQLSchema({});
const typeInfo = new TypeInfo(schema);
const ast = parse('{ foo }');
const onError = () => undefined;
const astContext = new ASTValidationContext(ast, onError);
expect(Object.prototype.toString.call(astContext)).to.equal(
'[object ASTValidationContext]',
);
const sdlContext = new SDLValidationContext(ast, schema, onError);
expect(Object.prototype.toString.call(sdlContext)).to.equal(
'[object SDLValidationContext]',
);
const context = new ValidationContext(schema, ast, typeInfo, onError);
expect(Object.prototype.toString.call(context)).to.equal(
'[object ValidationContext]',
);
});
});