-
Notifications
You must be signed in to change notification settings - Fork 3
chore: Migrate to the new documenter API #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,9 +2,15 @@ | |
// SPDX-License-Identifier: Apache-2.0 | ||
import { expect, test } from "vitest"; | ||
|
||
// @ts-expect-error no types here | ||
import apiDocs from "../../lib/components/internal/api-docs/components"; | ||
import componentDefinitions from "../../lib/components/internal/api-docs/components"; | ||
import { getAllComponents } from "./utils"; | ||
|
||
test.each(Object.entries(apiDocs))("definition for $0 matches the snapshot", (name, definition) => { | ||
expect(definition).toMatchSnapshot(); | ||
test.each<string>(getAllComponents())(`definition for %s matches the snapshot`, (componentName: string) => { | ||
const definition = componentDefinitions[componentName]; | ||
// overriding with a fake value so that when there are icon changes in components this test doesn't block it | ||
const iconNameDefinition = definition.properties.find(({ name }: { name: string }) => name === "iconName"); | ||
if (iconNameDefinition && iconNameDefinition.inlineType?.type === "union") { | ||
iconNameDefinition.inlineType.values = ["comes from @cloudscape-design/components"]; | ||
} | ||
Comment on lines
+10
to
+14
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is not needed in this package We can add it later, if we really start using icons in snapshots |
||
expect(definition).toMatchSnapshot(componentName); | ||
}); |
Original file line number | Diff line number | Diff line change | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,27 @@ | ||||||||||||||||
/* eslint-env node */ | ||||||||||||||||
/* eslint-disable header/header */ | ||||||||||||||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||||||||||||||||
// SPDX-License-Identifier: Apache-2.0 | ||||||||||||||||
Comment on lines
+1
to
+4
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you put comments in this order, they pass the linter without disabling
Suggested change
|
||||||||||||||||
import * as fs from "node:fs"; | ||||||||||||||||
import * as path from "node:path"; | ||||||||||||||||
|
||||||||||||||||
const componentsDir = path.resolve(__dirname, "../../lib/components"); | ||||||||||||||||
|
||||||||||||||||
export function getAllComponents(): string[] { | ||||||||||||||||
return fs | ||||||||||||||||
.readdirSync(componentsDir) | ||||||||||||||||
.filter( | ||||||||||||||||
(name) => | ||||||||||||||||
name !== "internal" && | ||||||||||||||||
name !== "test-utils" && | ||||||||||||||||
!name.includes(".") && | ||||||||||||||||
!name.includes("LICENSE") && | ||||||||||||||||
!name.includes("NOTICE"), | ||||||||||||||||
); | ||||||||||||||||
} | ||||||||||||||||
|
||||||||||||||||
export async function requireComponent(componentName: string) { | ||||||||||||||||
// eslint-disable-next-line no-unsanitized/method | ||||||||||||||||
const { default: Component } = await import(path.join(componentsDir, componentName)); | ||||||||||||||||
return Component; | ||||||||||||||||
} |
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
decided to follow how we define the documenter tests everywhere by using the
getAllComponents
utilThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks