error-map.test.js — astro Source File
Architecture documentation for error-map.test.js, a javascript file in the astro codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18["error-map.test.js"] 2c2ad99c_ec0d_bae1_2956_a019f5b6a543["../dist/core/errors/zod-error-map.js"] 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18 --> 2c2ad99c_ec0d_bae1_2956_a019f5b6a543 c6e6d952_1368_2c1c_2f3a_ad92a305600b["../../dist/zod.js"] 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18 --> c6e6d952_1368_2c1c_2f3a_ad92a305600b 0a624eac_945e_c9e8_c9de_3feb9de2dd15["test-utils.js"] 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18 --> 0a624eac_945e_c9e8_c9de_3feb9de2dd15 beb21e0a_5a04_1aeb_f065_5ab6c5ffe2ea["fixLineEndings"] 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18 --> beb21e0a_5a04_1aeb_f065_5ab6c5ffe2ea e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607["strict"] 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18 --> e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607 6b0635f9_51ea_77aa_767b_7857878e98a6["node:test"] 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18 --> 6b0635f9_51ea_77aa_767b_7857878e98a6 style 1ca4a691_7c9c_3b68_cd08_fd2967c8ae18 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import * as assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import { errorMap } from '../dist/core/errors/zod-error-map.js';
import { z } from '../dist/zod.js';
import { fixLineEndings } from './test-utils.js';
describe('Content Collections - error map', () => {
it('Returns formatted error for type mismatch', () => {
const error = getParseError(
z.object({
foo: z.string(),
}),
{ foo: 1 },
);
assert.deepEqual(messages(error), ['**foo**: Expected type `"string"`, received `"number"`']);
});
it('Returns formatted error for literal mismatch', () => {
const error = getParseError(
z.object({
lang: z.literal('en'),
}),
{ lang: 'es' },
);
assert.deepEqual(messages(error), ['Invalid input: expected "en"']);
});
it('Replaces undefined errors with "Required"', () => {
const error = getParseError(
z.object({
foo: z.string(),
bar: z.string(),
}),
{ foo: 'foo' },
);
assert.deepEqual(messages(error), ['**bar**: Required']);
});
it('Returns formatted error for basic union mismatch', () => {
const error = getParseError(
z.union([z.boolean(), z.number()]),
'not a boolean or a number, oops!',
);
assert.deepEqual(messages(error), [
fixLineEndings('Did not match union.\n> Expected type `"boolean"`, received `"string"`'),
]);
});
it('Returns formatted error for union mismatch on nested object properties', () => {
const error = getParseError(
z.union([
z.object({
type: z.literal('tutorial'),
}),
z.object({
type: z.literal('article'),
}),
]),
{ type: 'integration-guide' },
);
assert.deepEqual(messages(error), [
fixLineEndings(
'Did not match union.\n' +
'> Expected type `"tutorial" | "article"`\n' +
'> Received `{ "type": "integration-guide" }`',
),
]);
});
it('Lets unhandled errors fall through', () => {
const error = getParseError(
z.object({
lang: z.enum(['en', 'fr']),
}),
{ lang: 'jp' },
);
assert.deepEqual(messages(error), [`Invalid option: expected one of "en"|"fr"`]);
});
});
/**
* @param {z.ZodError} error
* @returns string[]
*/
function messages(error) {
return error.issues.map((e) => e.message);
}
function getParseError(schema, entry, parseOpts = { error: errorMap }) {
const res = schema.safeParse(entry, parseOpts);
assert.equal(res.success, false, 'Schema should raise error');
return res.error;
}
Domain
Subdomains
Functions
Dependencies
- ../../dist/zod.js
- ../dist/core/errors/zod-error-map.js
- fixLineEndings
- node:test
- strict
- test-utils.js
Source
Frequently Asked Questions
What does error-map.test.js do?
error-map.test.js is a source file in the astro codebase, written in javascript. It belongs to the IntegrationAdapters domain, SsrAdapters subdomain.
What functions are defined in error-map.test.js?
error-map.test.js defines 2 function(s): getParseError, messages.
What does error-map.test.js depend on?
error-map.test.js imports 6 module(s): ../../dist/zod.js, ../dist/core/errors/zod-error-map.js, fixLineEndings, node:test, strict, test-utils.js.
Where is error-map.test.js in the architecture?
error-map.test.js is located at packages/astro/test/error-map.test.js (domain: IntegrationAdapters, subdomain: SsrAdapters, directory: packages/astro/test).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free