import { describe, it } from 'node:test';
import { expect } from 'chai';
import { ensureGraphQLError } from '../ensureGraphQLError.ts';
import { GraphQLError } from '../GraphQLError.ts';
describe('ensureGraphQLError', () => {
it('passes GraphQLError through', () => {
const error = new GraphQLError('boom');
expect(ensureGraphQLError(error)).to.equal(error);
});
it('wraps Error values as GraphQLError', () => {
const originalError = new Error('boom');
const error = ensureGraphQLError(originalError);
expect(error).to.be.instanceOf(GraphQLError);
expect(error.message).to.equal('boom');
expect(error.originalError).to.equal(originalError);
});
it('wraps non-error thrown values', () => {
const error = ensureGraphQLError('boom');
expect(error).to.be.instanceOf(GraphQLError);
expect(error.message).to.equal('Unexpected error value: "boom"');
expect(error.originalError).to.include({
name: 'NonErrorThrown',
thrownValue: 'boom',
});
});
});