Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"eslint": "^9.39.2",
"jsdom": "^27.1.0",
"lerna": "^9.0.3",
"prettier": "~3.6.2",
"prettier": "3.7.4",
"pretty-quick": "^4.2.2",
"semver": "^7.7.3",
"tsx": "^4.21.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/code-infra/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
"peerDependencies": {
"@next/eslint-plugin-next": "*",
"eslint": "^9.0.0",
"prettier": "~3.5.3",
"prettier": "^3.0.0",
"typescript": "^5.0.0"
},
"devDependencies": {
Expand Down
12 changes: 8 additions & 4 deletions packages/docs-infra/src/CodeHighlighter/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,8 @@ export interface LoadFileOptions {
* Options for the loadCodeVariant function, extending LoadFileOptions with required function dependencies
*/
export interface LoadVariantOptions
extends LoadFileOptions,
extends
LoadFileOptions,
Pick<
CodeFunctionProps,
'sourceParser' | 'loadSource' | 'loadVariantMeta' | 'sourceTransformers'
Expand All @@ -170,7 +171,8 @@ export interface LoadVariantOptions
* Options for loading fallback code with various configuration flags
*/
export interface LoadFallbackCodeOptions
extends LoadFileOptions,
extends
LoadFileOptions,
CodeFunctionProps,
Pick<CodeContentProps, 'variants'>,
Pick<CodeLoadingProps, 'fallbackUsesExtraFiles' | 'fallbackUsesAllVariants'> {
Expand Down Expand Up @@ -296,7 +298,8 @@ export interface CodeClientRenderingProps {
* This serves as the foundation for other CodeHighlighter-related interfaces.
*/
export interface CodeHighlighterBaseProps<T extends {}>
extends CodeIdentityProps,
extends
CodeIdentityProps,
CodeContentProps,
CodeLoadingProps,
CodeFunctionProps,
Expand All @@ -307,7 +310,8 @@ export interface CodeHighlighterBaseProps<T extends {}>
* Used when rendering happens in the browser with lazy loading and interactive features.
*/
export interface CodeHighlighterClientProps
extends CodeIdentityProps,
extends
CodeIdentityProps,
CodeContentProps,
Omit<CodeLoadingProps, 'children'>,
CodeClientRenderingProps {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ import {
/**
* Options for mergeMetadataMarkdown
*/
export interface MergeMetadataMarkdownOptions
extends Omit<MetadataToMarkdownOptions, 'editableMarker' | 'indexWrapperComponent'> {
export interface MergeMetadataMarkdownOptions extends Omit<
MetadataToMarkdownOptions,
'editableMarker' | 'indexWrapperComponent'
> {
/** If true, pages in existing markdown that aren't in newMetadata will be preserved. If false (default), they are removed. */
preserveUnlisted?: boolean;
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ import type { VariantCode } from '../../CodeHighlighter/types';
vi.mock('../loadCodeVariant/loadCodeVariant', () => ({
loadCodeVariant: vi.fn(async (url: string, variantName: string, variant: VariantCode) => {
// Import normalizeLanguage inside the mock to apply normalization
const { normalizeLanguage: normalize } = await import(
'../loaderUtils/getLanguageFromExtension'
);
const { normalizeLanguage: normalize } =
await import('../loaderUtils/getLanguageFromExtension');

// Simple mock that just returns the input with some transforms applied
// Also normalize language like the real implementation does
Expand Down
32 changes: 31 additions & 1 deletion packages/test-utils/src/createRenderer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@ export interface MuiRenderResult extends RenderResult<typeof queries & typeof cu
* convenience helper. Better than repeating all props.
*/
setProps(props: object): void;
/**
* convenience helper. Better than repeating all props.
*/
setPropsAsync(props: object): Promise<void>;
}

export interface MuiRenderToStringResult {
Expand Down Expand Up @@ -139,6 +143,11 @@ function render(
setProps(props) {
testingLibraryRenderResult.rerender(React.cloneElement(element, props));
},
async setPropsAsync(props) {
await rtlAct(async () => {
testingLibraryRenderResult.rerender(React.cloneElement(element, props));
});
},
};

return result;
Expand Down Expand Up @@ -176,6 +185,11 @@ export interface Clock {
* @param timeoutMS
*/
tick(timeoutMS: number): void;
/**
* Tick the clock ahead `timeoutMS` milliseconds. And also flush any microtasks queued in between.
* @param timeoutMS
*/
tickAsync(timeoutMS: number): Promise<void>;
/**
* Returns true if we're running with "real" i.e. native timers.
*/
Expand Down Expand Up @@ -274,6 +288,11 @@ function createClock(
vi.advanceTimersByTime(timeoutMS);
});
},
async tickAsync(timeoutMS: number) {
await rtlAct(async () => {
await vi.advanceTimersByTimeAsync(timeoutMS);
});
},
runAll() {
rtlAct(() => {
vi.runAllTimers();
Expand Down Expand Up @@ -552,7 +571,18 @@ function act<T>(callback: () => void | T | Promise<T>) {
return rtlAct(callback);
}

const bodyBoundQueries = within(document.body, { ...queries, ...customQueries });
function createBodyBoundQueries() {
return within(document.body, { ...queries, ...customQueries });
}

const bodyBoundQueries =
typeof document === 'undefined'
? new Proxy({} as ReturnType<typeof createBodyBoundQueries>, {
get: () => {
throw new Error('bodyBoundQueries is not available in a non-DOM environment');
},
})
: createBodyBoundQueries();

export {
configure,
Expand Down
19 changes: 19 additions & 0 deletions packages/test-utils/src/ignoreActWarnings.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { onTestFinished } from 'vitest';

export function ignoreActWarnings() {
const originalConsoleError = console.error;
console.error = new Proxy(console.error, {
apply(target, thisArg, args) {
if (
typeof args[0] === 'string' &&
args[0].includes('An update to %s inside a test was not wrapped in act')
) {
return;
}
Reflect.apply(target, thisArg, args);
},
});
onTestFinished(() => {
console.error = originalConsoleError;
});
}
1 change: 1 addition & 0 deletions packages/test-utils/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ export {
export { fireEvent as fireDiscreteEvent } from '@testing-library/react/pure.js';
export { flushMicrotasks } from './flushMicrotasks';
export * from './env';
export { ignoreActWarnings } from './ignoreActWarnings';
21 changes: 7 additions & 14 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading