@@ -7,7 +7,7 @@ import { getDefaultClientDirectives } from '../../dist/core/client-directive/ind
77import { resolveConfig } from '../../dist/core/config/index.js' ;
88import { createBaseSettings } from '../../dist/core/config/settings.js' ;
99import { createContainer } from '../../dist/core/dev/container.js' ;
10- import { Logger } from '../../dist/core/logger/core.js' ;
10+ import { AstroIntegrationLogger , Logger } from '../../dist/core/logger/core.js' ;
1111import { nodeLogDestination } from '../../dist/core/logger/node.js' ;
1212import { NOOP_MIDDLEWARE_FN } from '../../dist/core/middleware/noop-middleware.js' ;
1313import { Pipeline } from '../../dist/core/render/index.js' ;
@@ -167,3 +167,39 @@ export async function runInContainer(options = {}, callback) {
167167 await container . close ( ) ;
168168 }
169169}
170+
171+ export function createSpyLogger ( ) {
172+ /** @type {Array<{ type: string; label: string | null; message: string }> } */
173+ const logs = [ ] ;
174+
175+ /** @type {import('../../dist/core/logger/core').Logger } */
176+ const logger = {
177+ debug : ( label , ...messages ) => {
178+ logs . push ( ...messages . map ( ( message ) => ( { type : 'debug' , label, message } ) ) ) ;
179+ } ,
180+ error : ( label , message ) => {
181+ logs . push ( { type : 'error' , label, message } ) ;
182+ } ,
183+ info : ( label , message ) => {
184+ logs . push ( { type : 'info' , label, message } ) ;
185+ } ,
186+ warn : ( label , message ) => {
187+ logs . push ( { type : 'warn' , label, message } ) ;
188+ } ,
189+ options : {
190+ dest : {
191+ write : ( ) => true ,
192+ } ,
193+ level : 'silent' ,
194+ } ,
195+ level : ( ) => 'silent' ,
196+ forkIntegrationLogger ( label ) {
197+ return new AstroIntegrationLogger ( this . options , label ) ;
198+ } ,
199+ } ;
200+
201+ return {
202+ logs,
203+ logger,
204+ } ;
205+ }
0 commit comments