From 61545c386e2a17e4db27e688d7638e68e8206527 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Thu, 13 Feb 2020 10:58:37 +0800 Subject: [PATCH 01/37] Addon-docs: React properties snapshot testing --- .eslintrc.js | 1 + addons/docs/package.json | 8 ++- .../js-class-component/docgen.snapshot | 45 ++++++++++++ .../js-class-component/input.js | 24 +++++++ .../js-class-component/properties.snapshot | 18 +++++ .../ts-function-component/docgen.snapshot | 64 +++++++++++++++++ .../ts-function-component/input.tsx | 34 ++++++++++ .../ts-function-component/properties.snapshot | 47 +++++++++++++ .../react/react-properties.stories.tsx | 15 ++++ .../frameworks/react/react-properties.test.ts | 68 +++++++++++++++++++ addons/docs/src/typings.d.ts | 6 +- app/react/package.json | 2 +- examples/official-storybook/main.js | 1 + yarn.lock | 20 +++--- 14 files changed, 337 insertions(+), 16 deletions(-) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/js-class-component/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/js-class-component/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/js-class-component/properties.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/properties.snapshot create mode 100644 addons/docs/src/frameworks/react/react-properties.stories.tsx create mode 100644 addons/docs/src/frameworks/react/react-properties.test.ts diff --git a/.eslintrc.js b/.eslintrc.js index 98dff193b3c1..fc1735437888 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -41,6 +41,7 @@ module.exports = { { files: [ '**/__tests__/**', + '**/__testfixtures__/**', '**/*.test.*', '**/*.stories.*', '**/storyshots/**/stories/**', diff --git a/addons/docs/package.json b/addons/docs/package.json index 0fff15ca2e16..95d4cd68d698 100644 --- a/addons/docs/package.json +++ b/addons/docs/package.json @@ -69,8 +69,8 @@ "remark-slug": "^5.1.2", "ts-dedent": "^1.1.1", "util-deprecate": "^1.0.2", - "vue-docgen-api": "^4.1.0", - "vue-docgen-loader": "^1.3.0-beta.0" + "vue-docgen-api": "^4.7.0", + "vue-docgen-loader": "^1.4.0" }, "devDependencies": { "@types/doctrine": "^0.0.3", @@ -78,7 +78,9 @@ "@types/jest": "^25.1.1", "@types/prop-types": "^15.5.9", "@types/util-deprecate": "^1.0.0", - "jest-specific-snapshot": "^2.0.0" + "babel-plugin-react-docgen": "^4.1.0", + "jest-specific-snapshot": "^2.0.0", + "require-from-string": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0", diff --git a/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/docgen.snapshot new file mode 100644 index 000000000000..5952fcbc3e52 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/docgen.snapshot @@ -0,0 +1,45 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties js-class-component 1`] = ` +"/* eslint-disable react/prefer-stateless-function */ +import React from 'react'; +import PropTypes from 'prop-types'; +/** + * Component description + */ + +class ErrorBox extends React.Component { + render() { + const { + children + } = this.props; + return React.createElement(\\"div\\", { + className: \\"error-box\\" + }, children); + } + +} + +ErrorBox.propTypes = { + /** + * PropTypes description + */ + children: PropTypes.node.isRequired +}; +ErrorBox.__docgenInfo = { + \\"description\\": \\"Component description\\", + \\"methods\\": [], + \\"displayName\\": \\"ErrorBox\\", + \\"props\\": { + \\"children\\": { + \\"type\\": { + \\"name\\": \\"node\\" + }, + \\"required\\": true, + \\"description\\": \\"PropTypes description\\" + } + } +}; +export default ErrorBox; +export const component = ErrorBox;" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/input.js b/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/input.js new file mode 100644 index 000000000000..c94bb47ca22b --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/input.js @@ -0,0 +1,24 @@ +/* eslint-disable react/prefer-stateless-function */ +import React from 'react'; +import PropTypes from 'prop-types'; + +/** + * Component description + */ +class ErrorBox extends React.Component { + render() { + const { children } = this.props; + + return
{children}
; + } +} + +ErrorBox.propTypes = { + /** + * PropTypes description + */ + children: PropTypes.node.isRequired, +}; + +export default ErrorBox; +export const component = ErrorBox; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/properties.snapshot new file mode 100644 index 000000000000..62dea7473922 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/js-class-component/properties.snapshot @@ -0,0 +1,18 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties js-class-component 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": null, + "description": "PropTypes description", + "name": "children", + "required": true, + "type": Object { + "detail": undefined, + "summary": "node", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/docgen.snapshot new file mode 100644 index 000000000000..5d5fe32b98da --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/docgen.snapshot @@ -0,0 +1,64 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties ts-function-component 1`] = ` +"import React from 'react'; + +/** + * The world's most _basic_ button + */ +export const Button = ({ + onClick +}) => React.createElement(\\"button\\", { + onClick: onClick, + type: \\"button\\" +}, \\"hello\\"); +Button.defaultProps = { + primary: true, + secondary: false +}; +export const component = Button; +Button.__docgenInfo = { + \\"description\\": \\"The world's most _basic_ button\\", + \\"methods\\": [], + \\"displayName\\": \\"Button\\", + \\"props\\": { + \\"primary\\": { + \\"defaultValue\\": { + \\"value\\": \\"true\\", + \\"computed\\": false + }, + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"boolean\\" + }, + \\"description\\": \\"Is primary?\\" + }, + \\"secondary\\": { + \\"defaultValue\\": { + \\"value\\": \\"false\\", + \\"computed\\": false + }, + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"boolean\\" + }, + \\"description\\": \\"default is false\\" + }, + \\"onClick\\": { + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"signature\\", + \\"type\\": \\"function\\", + \\"raw\\": \\"() => void\\", + \\"signature\\": { + \\"arguments\\": [], + \\"return\\": { + \\"name\\": \\"void\\" + } + } + }, + \\"description\\": \\"Simple click handler\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx new file mode 100644 index 000000000000..074c335f66b1 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx @@ -0,0 +1,34 @@ +import React, { FC } from 'react'; + +interface ButtonProps { + /** + * Simple click handler + */ + onClick?: () => void; + + /** + * Is primary? + */ + primary?: boolean; + + /** + * default is false + */ + secondary?: boolean; +} + +/** + * The world's most _basic_ button + */ +export const Button: React.FC = ({ onClick }: ButtonProps) => ( + +); + +Button.defaultProps = { + primary: true, + secondary: false, +}; + +export const component = Button; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/properties.snapshot new file mode 100644 index 000000000000..3577fd957656 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/properties.snapshot @@ -0,0 +1,47 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties ts-function-component 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "true", + }, + "description": "Is primary?", + "name": "primary", + "required": false, + "type": Object { + "detail": undefined, + "summary": "boolean", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "false", + }, + "description": "default is false", + "name": "secondary", + "required": false, + "type": Object { + "detail": undefined, + "summary": "boolean", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "2", + }, + "description": "Simple click handler", + "name": "onClick", + "required": false, + "type": Object { + "detail": undefined, + "summary": "signature", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx new file mode 100644 index 000000000000..3398298c6531 --- /dev/null +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { storiesOf } from '@storybook/react'; +import { PropsTable } from '@storybook/components'; +import { extractProps } from './extractProps'; + +const fixtures = ['js-class-component', 'ts-function-component']; + +const stories = storiesOf('Properties/React', module); + +fixtures.forEach(fixture => { + // eslint-disable-next-line import/no-dynamic-require, global-require + const { component } = require(`./__testfixtures__/${fixture}/input`); + const props = extractProps(component); + stories.add(fixture, () => ); +}); diff --git a/addons/docs/src/frameworks/react/react-properties.test.ts b/addons/docs/src/frameworks/react/react-properties.test.ts new file mode 100644 index 000000000000..99f24cb7dbff --- /dev/null +++ b/addons/docs/src/frameworks/react/react-properties.test.ts @@ -0,0 +1,68 @@ +import 'jest-specific-snapshot'; +import path from 'path'; +import fs from 'fs'; + +import { transformFileSync, transformSync } from '@babel/core'; +import requireFromString from 'require-from-string'; + +import { extractProps } from './extractProps'; + +// File hierarchy: +// __testfixtures__ / some-test-case / input.* +const inputRegExp = /^input\..*$/; + +const transformToModule = (inputCode: string) => { + const options = { + presets: [ + [ + '@babel/preset-env', + { + targets: { + esmodules: true, + }, + }, + ], + ], + }; + const { code } = transformSync(inputCode, options); + return normalizeNewlines(code); +}; + +const annotateWithDocgen = (inputPath: string) => { + const options = { + presets: ['@babel/typescript', '@babel/react'], + plugins: ['babel-plugin-react-docgen', '@babel/plugin-proposal-class-properties'], + babelrc: false, + }; + const { code } = transformFileSync(inputPath, options); + return normalizeNewlines(code); +}; + +const normalizeNewlines = (string: string) => string.replace(/\\r\\n/g, '\\n'); + +describe('react component properties', () => { + const fixturesDir = path.join(__dirname, '__testfixtures__'); + fs.readdirSync(fixturesDir, { withFileTypes: true }).forEach(testEntry => { + if (testEntry.isDirectory()) { + const testDir = path.join(fixturesDir, testEntry.name); + const testFile = fs.readdirSync(testDir).find(fileName => inputRegExp.test(fileName)); + if (testFile) { + it(testEntry.name, () => { + const inputPath = path.join(testDir, testFile); + + // snapshot the output of babel-plugin-react-docgen + const docgenPretty = annotateWithDocgen(inputPath); + expect(docgenPretty).toMatchSpecificSnapshot(path.join(testDir, 'docgen.snapshot')); + + // transform into an uglier format that's works with require-from-string + const docgenModule = transformToModule(docgenPretty); + + // snapshot the output of component-properties/react + const { component } = requireFromString(docgenModule); + const properties = extractProps(component); + expect(properties).toMatchSpecificSnapshot(path.join(testDir, 'properties.snapshot')); + }); + } + } + }); +}); diff --git a/addons/docs/src/typings.d.ts b/addons/docs/src/typings.d.ts index dc9928da3997..299f51c3e468 100644 --- a/addons/docs/src/typings.d.ts +++ b/addons/docs/src/typings.d.ts @@ -4,5 +4,7 @@ declare module '@storybook/addon-docs/blocks'; declare module 'global'; declare module 'react-is'; declare module '@egoist/vue-to-react'; -declare module "remark-slug"; -declare module "remark-external-links"; +declare module 'remark-slug'; +declare module 'remark-external-links'; +declare module 'babel-plugin-react-docgen'; +declare module 'require-from-string'; diff --git a/app/react/package.json b/app/react/package.json index 623e19afc022..2bcb2500a766 100644 --- a/app/react/package.json +++ b/app/react/package.json @@ -43,7 +43,7 @@ "@types/webpack-env": "^1.15.1", "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-named-asset-import": "^0.3.1", - "babel-plugin-react-docgen": "^4.0.0", + "babel-plugin-react-docgen": "^4.1.0", "core-js": "^3.0.1", "global": "^4.3.2", "lodash": "^4.17.15", diff --git a/examples/official-storybook/main.js b/examples/official-storybook/main.js index 0e2cf6ee5151..72365ac3100d 100644 --- a/examples/official-storybook/main.js +++ b/examples/official-storybook/main.js @@ -4,6 +4,7 @@ module.exports = { '../../lib/ui/src/**/*.stories.(js|tsx|mdx)', '../../lib/components/src/**/*.stories.(js|tsx|mdx)', './stories/**/*.stories.(js|tsx|mdx)', + './../../addons/docs/**/react-properties.stories.tsx', ], addons: [ '@storybook/addon-docs', diff --git a/yarn.lock b/yarn.lock index ec2c61fc9a98..0cb38f030d22 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6358,7 +6358,7 @@ babel-plugin-named-asset-import@^0.3.1, babel-plugin-named-asset-import@^0.3.2, resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.5.tgz#d3fa1a7f1f4babd4ed0785b75e2f926df0d70d0d" integrity sha512-sGhfINU+AuMw9oFAdIn/nD5sem3pn/WgxAfDZ//Q3CnF+5uaho7C7shh2rKLk6sKE/XkfmyibghocwKdVjLIKg== -babel-plugin-react-docgen@^4.0.0: +babel-plugin-react-docgen@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz#1dfa447dac9ca32d625a123df5733a9e47287c26" integrity sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA== @@ -24598,7 +24598,7 @@ react-docgen-typescript@^1.15.0: integrity sha512-nECrg2qih81AKp0smkxXebF72/2EjmEn7gXSlWLDHLbpGcbw2yIorol24fw1FWqvndIY82sfSd0x/SyfMKY1Jw== react-docgen@^5.0.0: - version "5.1.0" + version "5.2.0" resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.1.0.tgz#8e69f1d2e9153c535c20162ea1b85878b059b474" integrity sha512-buAVMVqDEtvC7+VRDRlA9udS9cO9jFfb7yxRvKNYR9MXS0MJwaIe7OjSEydNzH9oH7LND3whDE+koFDUBtF3zA== dependencies: @@ -30376,10 +30376,10 @@ vue-class-component@^7.0.1: resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-7.2.2.tgz#aecc6d28801f64c61eb04407cf3a5476da26b0c0" integrity sha512-QjVfjRffux0rUBNtxr1hvUxDrfifDvk9q/OSdB/sKIlfxAudDF2E1YTeiEC+qOYIOOBGWkgSKQSnast6H+S38w== -vue-docgen-api@^4.1.0: - version "4.7.6" - resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-4.7.6.tgz#1db24bce8e3119a29603361ca5ce6d73c93fffc3" - integrity sha512-eB4cVAVliiQVQIwvbhWs0t6RAFIdVabyGlDAxjtq3ghgtOQdUiVKMQsJPi+YxbMlWS99nrWLp+kC8TdMIuh6+g== +vue-docgen-api@^4.7.0: + version "4.7.7" + resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-4.7.7.tgz#685366830a8620a390d4bddd9afcd660757a7631" + integrity sha512-gwoqCM8NPKY6HE39fs8orpzWp9oTXpWVVUFGMFimAO+EPraqVB1dezv/g2c9s5E21hb0qryCEkeSsNmUpoRiCA== dependencies: "@babel/parser" "^7.6.0" "@babel/types" "^7.6.0" @@ -30391,10 +30391,10 @@ vue-docgen-api@^4.1.0: ts-map "^1.0.3" vue-template-compiler "^2.0.0" -vue-docgen-loader@^1.3.0-beta.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/vue-docgen-loader/-/vue-docgen-loader-1.3.0.tgz#449c2e09b1434f65ae4d8536dc63c61dbeb640b2" - integrity sha512-K/r3IulRQlZpRIvR0Ed8vdPQCCd1WbcajOgm/4fdwtO4pWorLLX9o0YGM1rlkX3DXybqOolQ5LEh7E3kTer1qg== +vue-docgen-loader@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/vue-docgen-loader/-/vue-docgen-loader-1.4.0.tgz#24409ddcec6c353b6e04734d9035623a9c301b9c" + integrity sha512-VD06bTwsQlgs0vHVcDw5a5WhyvH5Hw5LuS9Fs7OHB0VnElUB0wKJXE9t1SXEc87VOZb29kokhBRT+q1BdDI71A== dependencies: clone "^2.1.2" jscodeshift "^0.7.0" From 4e7394527c1b07474df966ac5d5cf683e02bdfa2 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Thu, 13 Feb 2020 10:59:08 +0800 Subject: [PATCH 02/37] Addon-docs: Document prop tables bug reporting and known limitations --- addons/docs/docs/media/props-tables-hero.png | Bin 0 -> 481438 bytes addons/docs/docs/props-tables.md | 97 +++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 addons/docs/docs/media/props-tables-hero.png create mode 100644 addons/docs/docs/props-tables.md diff --git a/addons/docs/docs/media/props-tables-hero.png b/addons/docs/docs/media/props-tables-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..fad4b2355d38776c403a1facd5185db90a032ed5 GIT binary patch literal 481438 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 }hsP^l^myf$wPTB@M+tmz3Yeejn@jO|QAmm+ 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 literal 0 HcmV?d00001 diff --git a/addons/docs/docs/props-tables.md b/addons/docs/docs/props-tables.md new file mode 100644 index 000000000000..1cbeb2e7c87d --- /dev/null +++ b/addons/docs/docs/props-tables.md @@ -0,0 +1,97 @@ +

+ +
+ +

Storybook Docs Props Tables

+ +Storybook Docs automatically generates props tables for components in supported frameworks. This document is a consolidated summary of prop tables, provides instructions for reporting bugs, and list known limitations for each framework. + +- [Usage](#usage) +- [Reporting a bug](#reporting-a-bug) +- [Known limitations](#known-limitations) + - [React](#react) + - [Vue](#vue) + - [Angular](#angular) + - [Web components](#web-components) + - [Ember](#ember) +- [More resources](#more-resources) + +## Usage + +For framework-specific setup instructions, see the framework's README: [React](../../react/README.md), [Vue](../../vue/README.md), [Angular](../../angular/README.md), [Web Components](../../web-components/README.md), [Ember](../../ember/README.md). + +To use the props table in [DocsPage](./docspage.md), simply export a component property on your stories metadata: + +```js +// MyComponent.stories.js +import { MyComponent } from './MyComponent'; + +export default { + title: 'MyComponent', + component: MyComponent, +}; +// stories etc... +``` + +To use the props table in [MDX](./mdx.md), use the `Props` block: + +```js +// MyComponent.stories.mdx +import { Props } from '@storybook/addon-docs/blocks'; +import { MyComponent } from './MyComponent'; + +# My Component! + + +``` + +## Reporting a bug + +Extracting component properties from source is a tricky problem with thousands of corner cases. We've designed this package and its tests to accurately isolate problems, since the cause could either be in this package or (likely) one of the packages it depends on. + +If you're seeing a problem with your prop table, here's what to do. + +First, look to see if there's already a test case that corresponds to your situation. If there is, it should be documented in the [Known Limitations](#known-limitations) section above. There should also be one or more corresponding test fixtures contained in this package. For example, if you are using React, look under the directory `./src/frameworks/react/__testfixtures__`. + +If your problem is not already represented here, do the following: + +1. Create a **MINIMAL** repro for your problem. Each case should be just a few lines of code. +2. Place it in the appropriate directory `./src//__testfixtures__/`, e.g. `./src/react/__testfixtures__/XXXX-some-description`, where `XXXX` is the corresponding github issue. +3. Run the tests for your ``, e.g. `yarn jest --testPathPattern=react-properties.test.ts --watch` +4. Inspect the output files for your test case. +5. Add the example to the appropriate stories file, e.g. `react-properties.stories.ts` for `react`, for a visual repro + +If the problem appears to be an issue with this library, file an issue and include a PR that includes your repro. + +If the problem appears to be an issue with the sub-package, please file an issue on the appropriate sub-package, document the limitation in [Known Limitations](#known-limitations) below, link to that issue, and submit a PR including the updated documentation and fixtures/snapshots. + +## Known limitations + +This package relies on a variety of sub-packages to extract property information from components. Many of the bugs in this package correspond to bugs in a sub-package. Since we don't maintain the sub-packages, the best we can do for now is (1) document these limitations, (2) provide clean reproductions to the sub-package, (3) optionally provide PRs to those packages to fix the problems. + +### React + +SB Docs for React uses `babel-plugin-react-docgen`/`react-docgen` for both JS PropTypes prop tables and, as of 6.0, TypeScript-driven props tables. + +### Vue + +SB Docs for Vue uses `vue-docgen-loader`/`vue-docgen-api` for SFC and JSX components. + +### Angular + +SB Docs for Angular uses `compodoc` for prop table information. + +### Web components + +SB Docs for Web-components uses `custom-elements.json` for prop table information. + +### Ember + +SB Docs for Ember uses `yui-doc` for prop table information. + +## More resources + +- References: [README](../README.md) / [DocsPage](docspage.md) / [MDX](mdx.md) / [FAQ](faq.md) / [Recipes](recipes.md) / [Theming](theming.md) +- Framework-specific docs: [React](../react/README.md) / [Vue](../vue/README.md) / [Angular](../angular/README.md) / [Web components](../web-components/README.md) / [Ember](../ember/README.md) +- Announcements: [Vision](https://medium.com/storybookjs/storybook-docs-sneak-peak-5be78445094a) / [DocsPage](https://medium.com/storybookjs/storybook-docspage-e185bc3622bf) / [MDX](https://medium.com/storybookjs/rich-docs-with-storybook-mdx-61bc145ae7bc) / [Framework support](https://medium.com/storybookjs/storybook-docs-for-new-frameworks-b1f6090ee0ea) +- Example: [Storybook Design System](https://github.com/storybookjs/design-system) From 90b97a52f0cbaa22ac2d076f166d1b119ca36055 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Thu, 13 Feb 2020 12:59:15 +0800 Subject: [PATCH 03/37] Fix typo --- addons/docs/docs/props-tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/docs/docs/props-tables.md b/addons/docs/docs/props-tables.md index 1cbeb2e7c87d..00ca8ca88e0e 100644 --- a/addons/docs/docs/props-tables.md +++ b/addons/docs/docs/props-tables.md @@ -56,7 +56,7 @@ First, look to see if there's already a test case that corresponds to your situa If your problem is not already represented here, do the following: 1. Create a **MINIMAL** repro for your problem. Each case should be just a few lines of code. -2. Place it in the appropriate directory `./src//__testfixtures__/`, e.g. `./src/react/__testfixtures__/XXXX-some-description`, where `XXXX` is the corresponding github issue. +2. Place it in the appropriate directory `./src/frameworks//__testfixtures__/`, e.g. `./src/frameworks/react/__testfixtures__/XXXX-some-description`, where `XXXX` is the corresponding github issue. 3. Run the tests for your ``, e.g. `yarn jest --testPathPattern=react-properties.test.ts --watch` 4. Inspect the output files for your test case. 5. Add the example to the appropriate stories file, e.g. `react-properties.stories.ts` for `react`, for a visual repro From 92bfc1adfb0784680db14e4f0c36420d5e49af9c Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Thu, 13 Feb 2020 16:50:05 +0800 Subject: [PATCH 04/37] Addon-docs: Angular properties snapshot testing POC --- addons/docs/package.json | 4 +- .../doc-button/compodoc.snapshot | 1016 +++++++++++++++++ .../__testfixtures__/doc-button/input.ts | 184 +++ .../doc-button/properties.snapshot | 230 ++++ .../__testfixtures__/doc-button/tsconfig.json | 7 + .../angular/angular-properties.test.ts | 51 + .../docs/src/frameworks/angular/compodoc.ts | 26 +- .../frameworks/react/react-properties.test.ts | 3 +- addons/docs/src/lib/utils.ts | 2 + 9 files changed, 1510 insertions(+), 13 deletions(-) create mode 100644 addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot create mode 100644 addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts create mode 100644 addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot create mode 100644 addons/docs/src/frameworks/angular/__testfixtures__/doc-button/tsconfig.json create mode 100644 addons/docs/src/frameworks/angular/angular-properties.test.ts diff --git a/addons/docs/package.json b/addons/docs/package.json index 1a6e456f1eb8..8f731f6528fa 100644 --- a/addons/docs/package.json +++ b/addons/docs/package.json @@ -79,8 +79,10 @@ "@types/prop-types": "^15.5.9", "@types/util-deprecate": "^1.0.0", "babel-plugin-react-docgen": "^4.1.0", + "cross-spawn": "^7.0.1", "jest-specific-snapshot": "^2.0.0", - "require-from-string": "^2.0.2" + "require-from-string": "^2.0.2", + "tmp": "^0.1.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0", diff --git a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot new file mode 100644 index 000000000000..61ab7d7b2950 --- /dev/null +++ b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot @@ -0,0 +1,1016 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties doc-button 1`] = ` +Object { + "classes": Array [], + "components": Array [ + Object { + "accessors": Object { + "inputValue": Object { + "getSignature": Object { + "description": "

Getter for inputValue.

+", + "line": 101, + "name": "inputValue", + "returnType": "", + "type": "", + }, + "name": "inputValue", + "setSignature": Object { + "args": Array [ + Object { + "name": "value", + "type": "string", + }, + ], + "description": "

Setter for inputValue that is also an @Input.

+", + "jsdoctags": Array [ + Object { + "name": "value", + "tagName": Object { + "text": "param", + }, + "type": "string", + }, + ], + "line": 96, + "name": "inputValue", + "returnType": "void", + "type": "void", + }, + }, + "item": Object { + "name": "item", + "setSignature": Object { + "args": Array [ + Object { + "name": "item", + "type": "[]", + }, + ], + "jsdoctags": Array [ + Object { + "name": "item", + "tagName": Object { + "text": "param", + }, + "type": "[]", + }, + ], + "line": 179, + "name": "item", + "returnType": "void", + "type": "void", + }, + }, + "value": Object { + "getSignature": Object { + "description": "

Get the private value.

+", + "line": 138, + "name": "value", + "returnType": "string | number", + "type": "", + }, + "name": "value", + "setSignature": Object { + "args": Array [ + Object { + "name": "value", + "type": "", + }, + ], + "description": "

Set the private value.

+", + "jsdoctags": Array [ + Object { + "name": "value", + "tagName": Object { + "text": "param", + }, + "type": "", + }, + ], + "line": 133, + "name": "value", + "returnType": "void", + "type": "void", + }, + }, + }, + "assetsDirs": Array [], + "description": "

This is a simple button that demonstrates various JSDoc handling in Storybook Docs for Angular.

+
+
+

How you like dem apples?! It's never been easier to document all your components.

+
+", + "encapsulation": Array [], + "entryComponents": Array [], + "file": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "hostBindings": Array [ + Object { + "defaultValue": "false", + "line": 110, + "name": "class.focused", + }, + ], + "hostListeners": Array [ + Object { + "args": Array [ + Object { + "name": "btn", + "type": "", + }, + ], + "argsDecorator": Array [ + "$event.target", + ], + "line": 106, + "name": "click", + }, + ], + "id": "component-InputComponent-62457013911a3b491fc4b1bdc175baf8", + "inputs": Array [], + "inputsClass": Array [ + Object { + "defaultValue": "'secondary'", + "description": "

Appearance style of the button.

+", + "line": 45, + "name": "appearance", + "type": "\\"primary\\" | \\"secondary\\"", + }, + Object { + "description": "

Setter for inputValue that is also an @Input.

+", + "line": 96, + "name": "inputValue", + "type": "string", + }, + Object { + "defaultValue": "false", + "description": "

Sets the button to a disabled state.

+", + "line": 49, + "name": "isDisabled", + }, + Object { + "line": 179, + "name": "item", + "type": "[]", + }, + Object { + "description": "

The inner text of the button.

+", + "line": 57, + "name": "label", + "type": "string", + }, + Object { + "line": 176, + "name": "showKeyAlias", + "type": "", + }, + Object { + "defaultValue": "'medium'", + "description": "

Size of the button.

+", + "line": 61, + "name": "size", + "type": "ButtonSize", + }, + Object { + "defaultValue": "false", + "description": "

Some input you shouldn't use.

+", + "line": 69, + "name": "somethingYouShouldNotUse", + }, + ], + "jsdoctags": Array [ + Object { + "atToken": Object { + "end": 772, + "flags": 0, + "kind": 57, + "pos": 771, + }, + "comment": "Hello world", + "end": 779, + "flags": 0, + "kind": 288, + "pos": 771, + "tagName": Object { + "end": 778, + "escapedText": "string", + "flags": 0, + "pos": 772, + }, + }, + Object { + "atToken": Object { + "end": 795, + "flags": 0, + "kind": 57, + "pos": 794, + }, + "comment": "[Example](http://example.com)", + "end": 800, + "flags": 0, + "kind": 288, + "pos": 794, + "tagName": Object { + "end": 799, + "escapedText": "link", + "flags": 0, + "pos": 795, + }, + }, + Object { + "atToken": Object { + "end": 834, + "flags": 0, + "kind": 57, + "pos": 833, + }, + "comment": "\`ThingThing\`", + "end": 839, + "flags": 0, + "kind": 288, + "pos": 833, + "tagName": Object { + "end": 838, + "escapedText": "code", + "flags": 0, + "pos": 834, + }, + }, + Object { + "atToken": Object { + "end": 856, + "flags": 0, + "kind": 57, + "pos": 855, + }, + "comment": "aaa", + "end": 861, + "flags": 0, + "kind": 288, + "pos": 855, + "tagName": Object { + "end": 860, + "escapedText": "html", + "flags": 0, + "pos": 856, + }, + }, + ], + "methodsClass": Array [ + Object { + "args": Array [ + Object { + "name": "x", + "type": "number", + }, + Object { + "name": "y", + "type": "string | number", + }, + ], + "description": "

An internal calculation method which adds x and y together.

+", + "jsdoctags": Array [ + Object { + "comment": "

Some number you'd like to use.

+", + "name": Object { + "end": 3186, + "escapedText": "x", + "flags": 0, + "pos": 3185, + }, + "tagName": Object { + "end": 3184, + "escapedText": "param", + "flags": 0, + "pos": 3179, + }, + "type": "number", + }, + Object { + "comment": "

Some other number or string you'd like to use, will have parseInt() applied before calculation.

+", + "name": Object { + "end": 3231, + "escapedText": "y", + "flags": 0, + "pos": 3230, + }, + "tagName": Object { + "end": 3229, + "escapedText": "param", + "flags": 0, + "pos": 3224, + }, + "type": "string | number", + }, + ], + "line": 148, + "modifierKind": Array [ + 114, + ], + "name": "calc", + "optional": false, + "returnType": "number", + "typeParameters": Array [], + }, + Object { + "args": Array [ + Object { + "name": "password", + "type": "string", + }, + ], + "description": "

A private method.

+", + "jsdoctags": Array [ + Object { + "comment": "

Some password.

+", + "name": Object { + "end": 3747, + "escapedText": "password", + "flags": 0, + "pos": 3739, + }, + "tagName": Object { + "end": 3738, + "escapedText": "param", + "flags": 0, + "pos": 3733, + }, + "type": "string", + }, + ], + "line": 171, + "modifierKind": Array [ + 112, + ], + "name": "privateMethod", + "optional": false, + "returnType": "void", + "typeParameters": Array [], + }, + Object { + "args": Array [ + Object { + "name": "id", + "optional": true, + "type": "number", + }, + ], + "description": "

A protected method.

+", + "jsdoctags": Array [ + Object { + "comment": "

Some id.

+", + "name": Object { + "end": 3606, + "escapedText": "id", + "flags": 0, + "pos": 3604, + }, + "optional": true, + "tagName": Object { + "end": 3603, + "escapedText": "param", + "flags": 0, + "pos": 3598, + }, + "type": "number", + }, + ], + "line": 162, + "modifierKind": Array [ + 113, + ], + "name": "protectedMethod", + "optional": false, + "returnType": "void", + "typeParameters": Array [], + }, + Object { + "args": Array [ + Object { + "name": "things", + "type": "ISomeInterface", + }, + ], + "description": "

A public method using an interface.

+", + "jsdoctags": Array [ + Object { + "name": "things", + "tagName": Object { + "text": "param", + }, + "type": "ISomeInterface", + }, + ], + "line": 153, + "modifierKind": Array [ + 114, + ], + "name": "publicMethod", + "optional": false, + "returnType": "void", + "typeParameters": Array [], + }, + ], + "name": "InputComponent", + "outputs": Array [], + "outputsClass": Array [ + Object { + "defaultValue": "new EventEmitter()", + "description": "

Handler to be called when the button is clicked by a user.

+

Will also block the emission of the event if isDisabled is true.

+", + "line": 77, + "name": "onClick", + "type": "EventEmitter", + }, + ], + "propertiesClass": Array [ + Object { + "defaultValue": "'some value'", + "description": "", + "line": 92, + "modifierKind": Array [ + 112, + ], + "name": "_inputValue", + "optional": false, + "type": "string", + }, + Object { + "defaultValue": "'Private hello'", + "description": "

Private value.

+", + "line": 130, + "modifierKind": Array [ + 112, + ], + "name": "_value", + "optional": false, + "type": "string", + }, + Object { + "decorators": Array [ + Object { + "name": "ViewChild", + "stringifiedArguments": "'buttonRef', {static: false}", + }, + ], + "description": "", + "line": 41, + "name": "buttonRef", + "optional": false, + "type": "ElementRef", + }, + Object { + "defaultValue": "'Public hello'", + "description": "

Public value.

+", + "line": 127, + "modifierKind": Array [ + 114, + ], + "name": "internalProperty", + "optional": false, + "type": "string", + }, + Object { + "description": "", + "line": 183, + "modifierKind": Array [ + 114, + ], + "name": "processedItem", + "optional": false, + "type": "T[]", + }, + ], + "providers": Array [], + "rawdescription": "This is a simple button that demonstrates various JSDoc handling in Storybook Docs for Angular. + +It supports [markdown](https://en.wikipedia.org/wiki/Markdown), so you can embed formatted text, +like **bold**, _italic_, and \`inline code\`. + +> How you like dem apples?! It's never been easier to document all your components.", + "selector": "doc-button", + "sourceCode": "import { + Component, + EventEmitter, + Input, + Output, + ViewChild, + HostListener, + HostBinding, + ElementRef, +} from '@angular/core'; + +export const exportedConstant = 'An exported constant'; + +export type ButtonSize = 'small' | 'medium' | 'large' | 'xlarge'; + +export interface ISomeInterface { + one: string; + two: boolean; + three: any[]; +} + +/** + * This is a simple button that demonstrates various JSDoc handling in Storybook Docs for Angular. + * + * It supports [markdown](https://en.wikipedia.org/wiki/Markdown), so you can embed formatted text, + * like **bold**, _italic_, and \`inline code\`. + * + * > How you like dem apples?! It's never been easier to document all your components. + * + * @string Hello world + * @link [Example](http://example.com) + * @code \`ThingThing\` + * @html aaa + */ +@Component({ + selector: 'doc-button', +}) +export class InputComponent { + @ViewChild('buttonRef', { static: false }) buttonRef: ElementRef; + + /** Appearance style of the button. */ + @Input() + public appearance: 'primary' | 'secondary' = 'secondary'; + + /** Sets the button to a disabled state. */ + @Input() + public isDisabled = false; + + /** + * The inner text of the button. + * + * @required + */ + @Input() + public label: string; + + /** Size of the button. */ + @Input() + public size?: ButtonSize = 'medium'; + + /** + * Some input you shouldn't use. + * + * @deprecated + */ + @Input() + public somethingYouShouldNotUse = false; + + /** + * Handler to be called when the button is clicked by a user. + * + * Will also block the emission of the event if \`isDisabled\` is true. + */ + @Output() + public onClick = new EventEmitter(); + + /** + * This is an internal method that we don't want to document and have added the \`ignore\` annoation to. + * + * @ignore + */ + public handleClick(event: Event) { + event.stopPropagation(); + + if (!this.isDisabled) { + this.onClick.emit(event); + } + } + + private _inputValue = 'some value'; + + /** Setter for \`inputValue\` that is also an \`@Input\`. */ + @Input() + public set inputValue(value: string) { + this._inputValue = value; + } + + /** Getter for \`inputValue\`. */ + public get inputValue() { + return this._inputValue; + } + + @HostListener('click', ['$event.target']) + onClickListener(btn) { + console.log('button', btn); + } + + @HostBinding('class.focused') focus = false; + + /** + * Returns all the CSS classes for the button. + * + * @ignore + */ + public get classes(): string[] { + return [this.appearance, this.size].filter(_class => !!_class).map(_class => \`btn-\${_class}\`); + } + + /** + * @ignore + */ + public ignoredProperty = 'Ignore me'; + + /** Public value. */ + public internalProperty = 'Public hello'; + + /** Private value. */ + private _value = 'Private hello'; + + /** Set the private value. */ + public set value(value: string | number) { + this._value = \`\${value}\`; + } + + /** Get the private value. */ + public get value(): string | number { + return this._value; + } + + /** + * An internal calculation method which adds \`x\` and \`y\` together. + * + * @param x Some number you'd like to use. + * @param y Some other number or string you'd like to use, will have \`parseInt()\` applied before calculation. + */ + public calc(x: number, y: string | number): number { + return x + parseInt(\`\${y}\`, 10); + } + + /** A public method using an interface. */ + public publicMethod(things: ISomeInterface) { + console.log(things); + } + + /** + * A protected method. + * + * @param id Some \`id\`. + */ + protected protectedMethod(id?: number) { + console.log(id); + } + + /** + * A private method. + * + * @param password Some \`password\`. + */ + private privateMethod(password: string) { + console.log(password); + } + + @Input('showKeyAlias') + public showKey: keyof T; + + @Input() + public set item(item: T[]) { + this.processedItem = item; + } + + public processedItem: T[]; +} +", + "styleUrls": Array [], + "styleUrlsData": "", + "styles": Array [], + "stylesData": "", + "templateUrl": Array [], + "type": "component", + "viewProviders": Array [], + }, + ], + "coverage": Object { + "count": 22, + "files": Array [ + Object { + "coverageCount": "14/21", + "coveragePercent": 66, + "filePath": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "linktype": "component", + "name": "InputComponent", + "status": "good", + "type": "component", + }, + Object { + "coverageCount": "0/4", + "coveragePercent": 0, + "filePath": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "linktype": "interface", + "name": "ISomeInterface", + "status": "low", + "type": "interface", + }, + Object { + "coverageCount": "0/1", + "coveragePercent": 0, + "filePath": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "linksubtype": "variable", + "linktype": "miscellaneous", + "name": "exportedConstant", + "status": "low", + "type": "variable", + }, + ], + "status": "low", + }, + "directives": Array [], + "injectables": Array [], + "interfaces": Array [ + Object { + "file": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "id": "interface-ISomeInterface-62457013911a3b491fc4b1bdc175baf8", + "indexSignatures": Array [], + "kind": 150, + "methods": Array [], + "name": "ISomeInterface", + "properties": Array [ + Object { + "description": "", + "line": 19, + "name": "one", + "optional": false, + "type": "string", + }, + Object { + "description": "", + "line": 21, + "name": "three", + "optional": false, + "type": "any[]", + }, + Object { + "description": "", + "line": 20, + "name": "two", + "optional": false, + "type": "boolean", + }, + ], + "sourceCode": "import { + Component, + EventEmitter, + Input, + Output, + ViewChild, + HostListener, + HostBinding, + ElementRef, +} from '@angular/core'; + +export const exportedConstant = 'An exported constant'; + +export type ButtonSize = 'small' | 'medium' | 'large' | 'xlarge'; + +export interface ISomeInterface { + one: string; + two: boolean; + three: any[]; +} + +/** + * This is a simple button that demonstrates various JSDoc handling in Storybook Docs for Angular. + * + * It supports [markdown](https://en.wikipedia.org/wiki/Markdown), so you can embed formatted text, + * like **bold**, _italic_, and \`inline code\`. + * + * > How you like dem apples?! It's never been easier to document all your components. + * + * @string Hello world + * @link [Example](http://example.com) + * @code \`ThingThing\` + * @html aaa + */ +@Component({ + selector: 'doc-button', +}) +export class InputComponent { + @ViewChild('buttonRef', { static: false }) buttonRef: ElementRef; + + /** Appearance style of the button. */ + @Input() + public appearance: 'primary' | 'secondary' = 'secondary'; + + /** Sets the button to a disabled state. */ + @Input() + public isDisabled = false; + + /** + * The inner text of the button. + * + * @required + */ + @Input() + public label: string; + + /** Size of the button. */ + @Input() + public size?: ButtonSize = 'medium'; + + /** + * Some input you shouldn't use. + * + * @deprecated + */ + @Input() + public somethingYouShouldNotUse = false; + + /** + * Handler to be called when the button is clicked by a user. + * + * Will also block the emission of the event if \`isDisabled\` is true. + */ + @Output() + public onClick = new EventEmitter(); + + /** + * This is an internal method that we don't want to document and have added the \`ignore\` annoation to. + * + * @ignore + */ + public handleClick(event: Event) { + event.stopPropagation(); + + if (!this.isDisabled) { + this.onClick.emit(event); + } + } + + private _inputValue = 'some value'; + + /** Setter for \`inputValue\` that is also an \`@Input\`. */ + @Input() + public set inputValue(value: string) { + this._inputValue = value; + } + + /** Getter for \`inputValue\`. */ + public get inputValue() { + return this._inputValue; + } + + @HostListener('click', ['$event.target']) + onClickListener(btn) { + console.log('button', btn); + } + + @HostBinding('class.focused') focus = false; + + /** + * Returns all the CSS classes for the button. + * + * @ignore + */ + public get classes(): string[] { + return [this.appearance, this.size].filter(_class => !!_class).map(_class => \`btn-\${_class}\`); + } + + /** + * @ignore + */ + public ignoredProperty = 'Ignore me'; + + /** Public value. */ + public internalProperty = 'Public hello'; + + /** Private value. */ + private _value = 'Private hello'; + + /** Set the private value. */ + public set value(value: string | number) { + this._value = \`\${value}\`; + } + + /** Get the private value. */ + public get value(): string | number { + return this._value; + } + + /** + * An internal calculation method which adds \`x\` and \`y\` together. + * + * @param x Some number you'd like to use. + * @param y Some other number or string you'd like to use, will have \`parseInt()\` applied before calculation. + */ + public calc(x: number, y: string | number): number { + return x + parseInt(\`\${y}\`, 10); + } + + /** A public method using an interface. */ + public publicMethod(things: ISomeInterface) { + console.log(things); + } + + /** + * A protected method. + * + * @param id Some \`id\`. + */ + protected protectedMethod(id?: number) { + console.log(id); + } + + /** + * A private method. + * + * @param password Some \`password\`. + */ + private privateMethod(password: string) { + console.log(password); + } + + @Input('showKeyAlias') + public showKey: keyof T; + + @Input() + public set item(item: T[]) { + this.processedItem = item; + } + + public processedItem: T[]; +} +", + "type": "interface", + }, + ], + "miscellaneous": Object { + "enumerations": Array [], + "functions": Array [], + "groupedEnumerations": Object {}, + "groupedFunctions": Object {}, + "groupedTypeAliases": Object { + "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts": Array [ + Object { + "ctype": "miscellaneous", + "description": "", + "file": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "kind": 168, + "name": "ButtonSize", + "rawtype": "\\"small\\" | \\"medium\\" | \\"large\\" | \\"xlarge\\"", + "subtype": "typealias", + }, + ], + }, + "groupedVariables": Object { + "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts": Array [ + Object { + "ctype": "miscellaneous", + "defaultValue": "'An exported constant'", + "file": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "name": "exportedConstant", + "subtype": "variable", + "type": "string", + }, + ], + }, + "typealiases": Array [ + Object { + "ctype": "miscellaneous", + "description": "", + "file": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "kind": 168, + "name": "ButtonSize", + "rawtype": "\\"small\\" | \\"medium\\" | \\"large\\" | \\"xlarge\\"", + "subtype": "typealias", + }, + ], + "variables": Array [ + Object { + "ctype": "miscellaneous", + "defaultValue": "'An exported constant'", + "file": "addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts", + "name": "exportedConstant", + "subtype": "variable", + "type": "string", + }, + ], + }, + "modules": Array [], + "pipes": Array [], + "routes": Array [], +} +`; diff --git a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts new file mode 100644 index 000000000000..2fcbc16b7e99 --- /dev/null +++ b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts @@ -0,0 +1,184 @@ +/* eslint-disable no-console */ +/* eslint-disable no-underscore-dangle */ +import { + Component, + EventEmitter, + Input, + Output, + ViewChild, + HostListener, + HostBinding, + ElementRef, +} from '@angular/core'; + +export const exportedConstant = 'An exported constant'; + +export type ButtonSize = 'small' | 'medium' | 'large' | 'xlarge'; + +export interface ISomeInterface { + one: string; + two: boolean; + three: any[]; +} + +/** + * This is a simple button that demonstrates various JSDoc handling in Storybook Docs for Angular. + * + * It supports [markdown](https://en.wikipedia.org/wiki/Markdown), so you can embed formatted text, + * like **bold**, _italic_, and `inline code`. + * + * > How you like dem apples?! It's never been easier to document all your components. + * + * @string Hello world + * @link [Example](http://example.com) + * @code `ThingThing` + * @html aaa + */ +@Component({ + selector: 'doc-button', +}) +export class InputComponent { + @ViewChild('buttonRef', { static: false }) buttonRef: ElementRef; + + /** Appearance style of the button. */ + @Input() + public appearance: 'primary' | 'secondary' = 'secondary'; + + /** Sets the button to a disabled state. */ + @Input() + public isDisabled = false; + + /** + * The inner text of the button. + * + * @required + */ + @Input() + public label: string; + + /** Size of the button. */ + @Input() + public size?: ButtonSize = 'medium'; + + /** + * Some input you shouldn't use. + * + * @deprecated + */ + @Input() + public somethingYouShouldNotUse = false; + + /** + * Handler to be called when the button is clicked by a user. + * + * Will also block the emission of the event if `isDisabled` is true. + */ + @Output() + public onClick = new EventEmitter(); + + /** + * This is an internal method that we don't want to document and have added the `ignore` annoation to. + * + * @ignore + */ + public handleClick(event: Event) { + event.stopPropagation(); + + if (!this.isDisabled) { + this.onClick.emit(event); + } + } + + private _inputValue = 'some value'; + + /** Setter for `inputValue` that is also an `@Input`. */ + @Input() + public set inputValue(value: string) { + this._inputValue = value; + } + + /** Getter for `inputValue`. */ + public get inputValue() { + return this._inputValue; + } + + @HostListener('click', ['$event.target']) + onClickListener(btn) { + console.log('button', btn); + } + + @HostBinding('class.focused') focus = false; + + /** + * Returns all the CSS classes for the button. + * + * @ignore + */ + public get classes(): string[] { + return [this.appearance, this.size].filter(_class => !!_class).map(_class => `btn-${_class}`); + } + + /** + * @ignore + */ + public ignoredProperty = 'Ignore me'; + + /** Public value. */ + public internalProperty = 'Public hello'; + + /** Private value. */ + private _value = 'Private hello'; + + /** Set the private value. */ + public set value(value: string | number) { + this._value = `${value}`; + } + + /** Get the private value. */ + public get value(): string | number { + return this._value; + } + + /** + * An internal calculation method which adds `x` and `y` together. + * + * @param x Some number you'd like to use. + * @param y Some other number or string you'd like to use, will have `parseInt()` applied before calculation. + */ + public calc(x: number, y: string | number): number { + return x + parseInt(`${y}`, 10); + } + + /** A public method using an interface. */ + public publicMethod(things: ISomeInterface) { + console.log(things); + } + + /** + * A protected method. + * + * @param id Some `id`. + */ + protected protectedMethod(id?: number) { + console.log(id); + } + + /** + * A private method. + * + * @param password Some `password`. + */ + private privateMethod(password: string) { + console.log(password); + } + + @Input('showKeyAlias') + public showKey: keyof T; + + @Input() + public set item(item: T[]) { + this.processedItem = item; + } + + public processedItem: T[]; +} diff --git a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot new file mode 100644 index 000000000000..712d64ae050c --- /dev/null +++ b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot @@ -0,0 +1,230 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties doc-button 1`] = ` +Object { + "sections": Object { + "inputs": Array [ + Object { + "defaultValue": Object { + "summary": "'secondary'", + }, + "description": "

Appearance style of the button.

+", + "name": "appearance", + "required": true, + "type": Object { + "summary": "\\"primary\\" | \\"secondary\\"", + }, + }, + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "

Setter for inputValue that is also an @Input.

+", + "name": "inputValue", + "required": true, + "type": Object { + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "summary": "false", + }, + "description": "

Sets the button to a disabled state.

+", + "name": "isDisabled", + "required": true, + "type": Object { + "summary": undefined, + }, + }, + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": undefined, + "name": "item", + "required": true, + "type": Object { + "summary": "[]", + }, + }, + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "

The inner text of the button.

+", + "name": "label", + "required": true, + "type": Object { + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": undefined, + "name": "showKeyAlias", + "required": true, + "type": Object { + "summary": "", + }, + }, + Object { + "defaultValue": Object { + "summary": "'medium'", + }, + "description": "

Size of the button.

+", + "name": "size", + "required": true, + "type": Object { + "summary": "ButtonSize", + }, + }, + Object { + "defaultValue": Object { + "summary": "false", + }, + "description": "

Some input you shouldn't use.

+", + "name": "somethingYouShouldNotUse", + "required": true, + "type": Object { + "summary": undefined, + }, + }, + ], + "methods": Array [ + Object { + "defaultValue": Object { + "summary": "", + }, + "description": "

An internal calculation method which adds x and y together.

+", + "name": "calc", + "required": false, + "type": Object { + "summary": "(x: number, y: string | number) => number", + }, + }, + Object { + "defaultValue": Object { + "summary": "", + }, + "description": "

A private method.

+", + "name": "privateMethod", + "required": false, + "type": Object { + "summary": "(password: string) => void", + }, + }, + Object { + "defaultValue": Object { + "summary": "", + }, + "description": "

A protected method.

+", + "name": "protectedMethod", + "required": false, + "type": Object { + "summary": "(id?: number) => void", + }, + }, + Object { + "defaultValue": Object { + "summary": "", + }, + "description": "

A public method using an interface.

+", + "name": "publicMethod", + "required": false, + "type": Object { + "summary": "(things: ISomeInterface) => void", + }, + }, + ], + "outputs": Array [ + Object { + "defaultValue": Object { + "summary": "new EventEmitter()", + }, + "description": "

Handler to be called when the button is clicked by a user.

+

Will also block the emission of the event if isDisabled is true.

+", + "name": "onClick", + "required": true, + "type": Object { + "summary": "EventEmitter", + }, + }, + ], + "properties": Array [ + Object { + "defaultValue": Object { + "summary": "'some value'", + }, + "description": "", + "name": "_inputValue", + "required": true, + "type": Object { + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "summary": "'Private hello'", + }, + "description": "

Private value.

+", + "name": "_value", + "required": true, + "type": Object { + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "summary": "'Public hello'", + }, + "description": "

Public value.

+", + "name": "internalProperty", + "required": true, + "type": Object { + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "", + "name": "processedItem", + "required": true, + "type": Object { + "summary": "T[]", + }, + }, + ], + "view child": Array [ + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "", + "name": "buttonRef", + "required": true, + "type": Object { + "summary": "ElementRef", + }, + }, + ], + }, +} +`; diff --git a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/tsconfig.json b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/tsconfig.json new file mode 100644 index 000000000000..ced6b7ae2f7c --- /dev/null +++ b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.ts"] +} diff --git a/addons/docs/src/frameworks/angular/angular-properties.test.ts b/addons/docs/src/frameworks/angular/angular-properties.test.ts new file mode 100644 index 000000000000..c53202a9fa3d --- /dev/null +++ b/addons/docs/src/frameworks/angular/angular-properties.test.ts @@ -0,0 +1,51 @@ +import 'jest-specific-snapshot'; +import path from 'path'; +import fs from 'fs'; +import tmp from 'tmp'; +import { sync as spawnSync } from 'cross-spawn'; + +import { findComponentByName, extractPropsFromData } from './compodoc'; +import { normalizeNewlines } from '../../lib/utils'; + +// File hierarchy: +// __testfixtures__ / some-test-case / input.* +const inputRegExp = /^input\..*$/; + +const runCompodoc = (inputPath: string) => { + const testDir = path.dirname(inputPath); + const { name: tmpDir } = tmp.dirSync(); + + // FIXME: for now, this requires a tsconfig.json for each test case. Tried generating + // one dynamically in tmpDir, but compodoc doesn't handle absolute paths properly + // (and screwed around with relative paths as well, but couldn't get it working) + spawnSync('compodoc', ['-p', `${testDir}/tsconfig.json`, '-e', 'json', '-d', tmpDir], { + stdio: 'inherit', + }); + const json = fs.readFileSync(`${tmpDir}/documentation.json`, 'utf8'); + return normalizeNewlines(json); +}; + +describe('react component properties', () => { + const fixturesDir = path.join(__dirname, '__testfixtures__'); + fs.readdirSync(fixturesDir, { withFileTypes: true }).forEach(testEntry => { + if (testEntry.isDirectory()) { + const testDir = path.join(fixturesDir, testEntry.name); + const testFile = fs.readdirSync(testDir).find(fileName => inputRegExp.test(fileName)); + if (testFile) { + it(testEntry.name, () => { + const inputPath = path.join(testDir, testFile); + + // snapshot the output of compodoc + const compodocOutput = runCompodoc(inputPath); + const compodocJson = JSON.parse(compodocOutput); + expect(compodocJson).toMatchSpecificSnapshot(path.join(testDir, 'compodoc.snapshot')); + + // snapshot the output of addon-docs angular-properties + const componentData = findComponentByName('InputComponent', compodocJson); + const properties = extractPropsFromData(componentData); + expect(properties).toMatchSpecificSnapshot(path.join(testDir, 'properties.snapshot')); + }); + } + } + }); +}); diff --git a/addons/docs/src/frameworks/angular/compodoc.ts b/addons/docs/src/frameworks/angular/compodoc.ts index 8362919f1755..f2d26561d027 100644 --- a/addons/docs/src/frameworks/angular/compodoc.ts +++ b/addons/docs/src/frameworks/angular/compodoc.ts @@ -71,6 +71,15 @@ const mapItemToSection = (key: string, item: Method | Property): string => { } }; +export const findComponentByName = (name?: string, compodocJson?: CompodocJson) => { + return ( + name && + compodocJson && + (compodocJson.components.find((c: Component) => c.name === name) || + compodocJson.directives.find((c: Directive) => c.name === name)) + ); +}; + const getComponentData = (component: Component | Directive) => { if (!component) { return null; @@ -79,10 +88,7 @@ const getComponentData = (component: Component | Directive) => { const compodocJson = getCompdocJson(); checkValidCompodocJson(compodocJson); const { name } = component; - return ( - compodocJson.components.find((c: Component) => c.name === name) || - compodocJson.directives.find((c: Directive) => c.name === name) - ); + return findComponentByName(name, compodocJson); }; const displaySignature = (item: Method): string => { @@ -92,12 +98,7 @@ const displaySignature = (item: Method): string => { return `(${args.join(', ')}) => ${item.returnType}`; }; -export const extractProps = (component: Component | Directive) => { - const componentData = getComponentData(component); - if (!componentData) { - return null; - } - +export const extractPropsFromData = (componentData: Directive) => { const sectionToItems: Sections = {}; const compodocClasses = ['propertiesClass', 'methodsClass', 'inputsClass', 'outputsClass']; type COMPODOC_CLASS = 'propertiesClass' | 'methodsClass' | 'inputsClass' | 'outputsClass'; @@ -143,6 +144,11 @@ export const extractProps = (component: Component | Directive) => { return isEmpty(sections) ? null : { sections }; }; +export const extractProps = (component: Component | Directive) => { + const componentData = getComponentData(component); + return componentData && extractPropsFromData(componentData); +}; + export const extractComponentDescription = (component: Component | Directive) => { const componentData = getComponentData(component); if (!componentData) { diff --git a/addons/docs/src/frameworks/react/react-properties.test.ts b/addons/docs/src/frameworks/react/react-properties.test.ts index 99f24cb7dbff..c996b6fdeca6 100644 --- a/addons/docs/src/frameworks/react/react-properties.test.ts +++ b/addons/docs/src/frameworks/react/react-properties.test.ts @@ -6,6 +6,7 @@ import { transformFileSync, transformSync } from '@babel/core'; import requireFromString from 'require-from-string'; import { extractProps } from './extractProps'; +import { normalizeNewlines } from '../../lib/utils'; // File hierarchy: // __testfixtures__ / some-test-case / input.* @@ -38,8 +39,6 @@ const annotateWithDocgen = (inputPath: string) => { return normalizeNewlines(code); }; -const normalizeNewlines = (string: string) => string.replace(/\\r\\n/g, '\\n'); - describe('react component properties', () => { const fixturesDir = path.join(__dirname, '__testfixtures__'); fs.readdirSync(fixturesDir, { withFileTypes: true }).forEach(testEntry => { diff --git a/addons/docs/src/lib/utils.ts b/addons/docs/src/lib/utils.ts index 4a0af2fb7a5b..44725a086956 100644 --- a/addons/docs/src/lib/utils.ts +++ b/addons/docs/src/lib/utils.ts @@ -14,3 +14,5 @@ export function isTooLongForDefaultValueSummary(value: string): boolean { export function createSummaryValue(summary: string, detail?: string): PropSummaryValue { return { summary, detail }; } + +export const normalizeNewlines = (string: string) => string.replace(/\\r\\n/g, '\\n'); From 659dc8291517d21bd9244c61811e5fa2c121b024 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Thu, 13 Feb 2020 17:54:35 +0800 Subject: [PATCH 05/37] Cleanup :joy: --- addons/docs/src/frameworks/angular/compodoc.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/addons/docs/src/frameworks/angular/compodoc.ts b/addons/docs/src/frameworks/angular/compodoc.ts index f2d26561d027..9838966dd45a 100644 --- a/addons/docs/src/frameworks/angular/compodoc.ts +++ b/addons/docs/src/frameworks/angular/compodoc.ts @@ -71,14 +71,9 @@ const mapItemToSection = (key: string, item: Method | Property): string => { } }; -export const findComponentByName = (name?: string, compodocJson?: CompodocJson) => { - return ( - name && - compodocJson && - (compodocJson.components.find((c: Component) => c.name === name) || - compodocJson.directives.find((c: Directive) => c.name === name)) - ); -}; +export const findComponentByName = (name: string, compodocJson: CompodocJson) => + compodocJson.components.find((c: Component) => c.name === name) || + compodocJson.directives.find((c: Directive) => c.name === name); const getComponentData = (component: Component | Directive) => { if (!component) { From eeab514f98564d086e048b6636d32df1702dfdd4 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 12:54:17 +0800 Subject: [PATCH 06/37] Addon-docs: Cleanup angular properties tests --- .../doc-button/compodoc.snapshot | 138 +++++++++--------- .../__testfixtures__/doc-button/input.ts | 1 + .../doc-button/properties.snapshot | 2 +- .../angular/angular-properties.test.ts | 13 +- addons/docs/src/typings.d.ts | 2 + 5 files changed, 79 insertions(+), 77 deletions(-) diff --git a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot index 61ab7d7b2950..677536e95e08 100644 --- a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot +++ b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/compodoc.snapshot @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`react component properties doc-button 1`] = ` +exports[`angular component properties doc-button 1`] = ` Object { "classes": Array [], "components": Array [ @@ -10,7 +10,7 @@ Object { "getSignature": Object { "description": "

Getter for inputValue.

", - "line": 101, + "line": 102, "name": "inputValue", "returnType": "", "type": "", @@ -34,7 +34,7 @@ Object { "type": "string", }, ], - "line": 96, + "line": 97, "name": "inputValue", "returnType": "void", "type": "void", @@ -58,7 +58,7 @@ Object { "type": "[]", }, ], - "line": 179, + "line": 180, "name": "item", "returnType": "void", "type": "void", @@ -68,7 +68,7 @@ Object { "getSignature": Object { "description": "

Get the private value.

", - "line": 138, + "line": 139, "name": "value", "returnType": "string | number", "type": "", @@ -92,7 +92,7 @@ Object { "type": "", }, ], - "line": 133, + "line": 134, "name": "value", "returnType": "void", "type": "void", @@ -113,7 +113,7 @@ like bold, italic, and inline code.

"hostBindings": Array [ Object { "defaultValue": "false", - "line": 110, + "line": 111, "name": "class.focused", }, ], @@ -128,7 +128,7 @@ like bold, italic, and inline code.

"argsDecorator": Array [ "$event.target", ], - "line": 106, + "line": 107, "name": "click", }, ], @@ -139,14 +139,14 @@ like bold, italic, and inline code.

"defaultValue": "'secondary'", "description": "

Appearance style of the button.

", - "line": 45, + "line": 46, "name": "appearance", "type": "\\"primary\\" | \\"secondary\\"", }, Object { "description": "

Setter for inputValue that is also an @Input.

", - "line": 96, + "line": 97, "name": "inputValue", "type": "string", }, @@ -154,23 +154,23 @@ like bold, italic, and inline code.

"defaultValue": "false", "description": "

Sets the button to a disabled state.

", - "line": 49, + "line": 50, "name": "isDisabled", }, Object { - "line": 179, + "line": 180, "name": "item", "type": "[]", }, Object { "description": "

The inner text of the button.

", - "line": 57, + "line": 58, "name": "label", "type": "string", }, Object { - "line": 176, + "line": 177, "name": "showKeyAlias", "type": "", }, @@ -178,7 +178,7 @@ like bold, italic, and inline code.

"defaultValue": "'medium'", "description": "

Size of the button.

", - "line": 61, + "line": 62, "name": "size", "type": "ButtonSize", }, @@ -186,85 +186,85 @@ like bold, italic, and inline code.

"defaultValue": "false", "description": "

Some input you shouldn't use.

", - "line": 69, + "line": 70, "name": "somethingYouShouldNotUse", }, ], "jsdoctags": Array [ Object { "atToken": Object { - "end": 772, + "end": 787, "flags": 0, "kind": 57, - "pos": 771, + "pos": 786, }, "comment": "Hello world", - "end": 779, + "end": 794, "flags": 0, "kind": 288, - "pos": 771, + "pos": 786, "tagName": Object { - "end": 778, + "end": 793, "escapedText": "string", "flags": 0, - "pos": 772, + "pos": 787, }, }, Object { "atToken": Object { - "end": 795, + "end": 810, "flags": 0, "kind": 57, - "pos": 794, + "pos": 809, }, "comment": "[Example](http://example.com)", - "end": 800, + "end": 815, "flags": 0, "kind": 288, - "pos": 794, + "pos": 809, "tagName": Object { - "end": 799, + "end": 814, "escapedText": "link", "flags": 0, - "pos": 795, + "pos": 810, }, }, Object { "atToken": Object { - "end": 834, + "end": 849, "flags": 0, "kind": 57, - "pos": 833, + "pos": 848, }, "comment": "\`ThingThing\`", - "end": 839, + "end": 854, "flags": 0, "kind": 288, - "pos": 833, + "pos": 848, "tagName": Object { - "end": 838, + "end": 853, "escapedText": "code", "flags": 0, - "pos": 834, + "pos": 849, }, }, Object { "atToken": Object { - "end": 856, + "end": 871, "flags": 0, "kind": 57, - "pos": 855, + "pos": 870, }, "comment": "aaa", - "end": 861, + "end": 876, "flags": 0, "kind": 288, - "pos": 855, + "pos": 870, "tagName": Object { - "end": 860, + "end": 875, "escapedText": "html", "flags": 0, - "pos": 856, + "pos": 871, }, }, ], @@ -287,16 +287,16 @@ like bold, italic, and inline code.

"comment": "

Some number you'd like to use.

", "name": Object { - "end": 3186, + "end": 3201, "escapedText": "x", "flags": 0, - "pos": 3185, + "pos": 3200, }, "tagName": Object { - "end": 3184, + "end": 3199, "escapedText": "param", "flags": 0, - "pos": 3179, + "pos": 3194, }, "type": "number", }, @@ -304,21 +304,21 @@ like bold, italic, and inline code.

"comment": "

Some other number or string you'd like to use, will have parseInt() applied before calculation.

", "name": Object { - "end": 3231, + "end": 3246, "escapedText": "y", "flags": 0, - "pos": 3230, + "pos": 3245, }, "tagName": Object { - "end": 3229, + "end": 3244, "escapedText": "param", "flags": 0, - "pos": 3224, + "pos": 3239, }, "type": "string | number", }, ], - "line": 148, + "line": 149, "modifierKind": Array [ 114, ], @@ -341,21 +341,21 @@ like bold, italic, and inline code.

"comment": "

Some password.

", "name": Object { - "end": 3747, + "end": 3762, "escapedText": "password", "flags": 0, - "pos": 3739, + "pos": 3754, }, "tagName": Object { - "end": 3738, + "end": 3753, "escapedText": "param", "flags": 0, - "pos": 3733, + "pos": 3748, }, "type": "string", }, ], - "line": 171, + "line": 172, "modifierKind": Array [ 112, ], @@ -379,22 +379,22 @@ like bold, italic, and inline code.

"comment": "

Some id.

", "name": Object { - "end": 3606, + "end": 3621, "escapedText": "id", "flags": 0, - "pos": 3604, + "pos": 3619, }, "optional": true, "tagName": Object { - "end": 3603, + "end": 3618, "escapedText": "param", "flags": 0, - "pos": 3598, + "pos": 3613, }, "type": "number", }, ], - "line": 162, + "line": 163, "modifierKind": Array [ 113, ], @@ -421,7 +421,7 @@ like bold, italic, and inline code.

"type": "ISomeInterface", }, ], - "line": 153, + "line": 154, "modifierKind": Array [ 114, ], @@ -439,7 +439,7 @@ like bold, italic, and inline code.

"description": "

Handler to be called when the button is clicked by a user.

Will also block the emission of the event if isDisabled is true.

", - "line": 77, + "line": 78, "name": "onClick", "type": "EventEmitter", }, @@ -448,7 +448,7 @@ like bold, italic, and inline code.

Object { "defaultValue": "'some value'", "description": "", - "line": 92, + "line": 93, "modifierKind": Array [ 112, ], @@ -460,7 +460,7 @@ like bold, italic, and inline code.

"defaultValue": "'Private hello'", "description": "

Private value.

", - "line": 130, + "line": 131, "modifierKind": Array [ 112, ], @@ -476,7 +476,7 @@ like bold, italic, and inline code.

}, ], "description": "", - "line": 41, + "line": 42, "name": "buttonRef", "optional": false, "type": "ElementRef", @@ -485,7 +485,7 @@ like bold, italic, and inline code.

"defaultValue": "'Public hello'", "description": "

Public value.

", - "line": 127, + "line": 128, "modifierKind": Array [ 114, ], @@ -495,7 +495,7 @@ like bold, italic, and inline code.

}, Object { "description": "", - "line": 183, + "line": 184, "modifierKind": Array [ 114, ], @@ -751,21 +751,21 @@ export class InputComponent { "properties": Array [ Object { "description": "", - "line": 19, + "line": 20, "name": "one", "optional": false, "type": "string", }, Object { "description": "", - "line": 21, + "line": 22, "name": "three", "optional": false, "type": "any[]", }, Object { "description": "", - "line": 20, + "line": 21, "name": "two", "optional": false, "type": "boolean", diff --git a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts index 2fcbc16b7e99..a76d7d54ea5d 100644 --- a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts +++ b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/input.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable no-console */ /* eslint-disable no-underscore-dangle */ import { diff --git a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot index 712d64ae050c..efd774f746b2 100644 --- a/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot +++ b/addons/docs/src/frameworks/angular/__testfixtures__/doc-button/properties.snapshot @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`react component properties doc-button 1`] = ` +exports[`angular component properties doc-button 1`] = ` Object { "sections": Object { "inputs": Array [ diff --git a/addons/docs/src/frameworks/angular/angular-properties.test.ts b/addons/docs/src/frameworks/angular/angular-properties.test.ts index c53202a9fa3d..c169ff0ea9f0 100644 --- a/addons/docs/src/frameworks/angular/angular-properties.test.ts +++ b/addons/docs/src/frameworks/angular/angular-properties.test.ts @@ -5,15 +5,13 @@ import tmp from 'tmp'; import { sync as spawnSync } from 'cross-spawn'; import { findComponentByName, extractPropsFromData } from './compodoc'; -import { normalizeNewlines } from '../../lib/utils'; -// File hierarchy: -// __testfixtures__ / some-test-case / input.* +// File hierarchy: __testfixtures__ / some-test-case / input.* const inputRegExp = /^input\..*$/; const runCompodoc = (inputPath: string) => { const testDir = path.dirname(inputPath); - const { name: tmpDir } = tmp.dirSync(); + const { name: tmpDir, removeCallback } = tmp.dirSync(); // FIXME: for now, this requires a tsconfig.json for each test case. Tried generating // one dynamically in tmpDir, but compodoc doesn't handle absolute paths properly @@ -21,11 +19,12 @@ const runCompodoc = (inputPath: string) => { spawnSync('compodoc', ['-p', `${testDir}/tsconfig.json`, '-e', 'json', '-d', tmpDir], { stdio: 'inherit', }); - const json = fs.readFileSync(`${tmpDir}/documentation.json`, 'utf8'); - return normalizeNewlines(json); + const output = fs.readFileSync(`${tmpDir}/documentation.json`, 'utf8'); + removeCallback(); + return output; }; -describe('react component properties', () => { +describe('angular component properties', () => { const fixturesDir = path.join(__dirname, '__testfixtures__'); fs.readdirSync(fixturesDir, { withFileTypes: true }).forEach(testEntry => { if (testEntry.isDirectory()) { diff --git a/addons/docs/src/typings.d.ts b/addons/docs/src/typings.d.ts index 299f51c3e468..83c517088b75 100644 --- a/addons/docs/src/typings.d.ts +++ b/addons/docs/src/typings.d.ts @@ -8,3 +8,5 @@ declare module 'remark-slug'; declare module 'remark-external-links'; declare module 'babel-plugin-react-docgen'; declare module 'require-from-string'; +declare module 'tmp'; +declare module 'cross-spawn'; From ed4b83173c87fcb249a1bc0f775a6693f311f445 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 12:58:26 +0800 Subject: [PATCH 07/37] Addon-docs: Web-components properties tests --- addons/docs/package.json | 4 +- .../custom-elements.snapshot | 83 ++++++++ .../lit-element-demo-card/input.js | 198 ++++++++++++++++++ .../lit-element-demo-card/properties.snapshot | 139 ++++++++++++ .../lit-html-welcome/custom-elements.snapshot | 13 ++ .../lit-html-welcome/input.js | 61 ++++++ .../lit-html-welcome/properties.snapshot | 3 + .../src/frameworks/web-components/config.js | 56 +---- .../web-components/custom-elements.ts | 88 ++++++++ .../web-components-properties.test.ts | 57 +++++ yarn.lock | 21 +- 11 files changed, 666 insertions(+), 57 deletions(-) create mode 100644 addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/custom-elements.snapshot create mode 100644 addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/input.js create mode 100644 addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/properties.snapshot create mode 100644 addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/custom-elements.snapshot create mode 100644 addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/input.js create mode 100644 addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/properties.snapshot create mode 100644 addons/docs/src/frameworks/web-components/custom-elements.ts create mode 100644 addons/docs/src/frameworks/web-components/web-components-properties.test.ts diff --git a/addons/docs/package.json b/addons/docs/package.json index 8f731f6528fa..fd02fd770d6b 100644 --- a/addons/docs/package.json +++ b/addons/docs/package.json @@ -81,8 +81,10 @@ "babel-plugin-react-docgen": "^4.1.0", "cross-spawn": "^7.0.1", "jest-specific-snapshot": "^2.0.0", + "lit-html": "^1.0.0", "require-from-string": "^2.0.2", - "tmp": "^0.1.0" + "tmp": "^0.1.0", + "web-component-analyzer": "^1.0.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0", diff --git a/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/custom-elements.snapshot b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/custom-elements.snapshot new file mode 100644 index 000000000000..162254124055 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/custom-elements.snapshot @@ -0,0 +1,83 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`web-components component properties lit-element-demo-card 1`] = ` +Object { + "tags": Array [ + Object { + "attributes": Array [ + Object { + "default": "false", + "description": "Indicates that the back of the card is shown", + "name": "back-side", + "type": "boolean", + }, + Object { + "default": "\\"Your Message\\"", + "description": "Header message", + "name": "header", + "type": "string", + }, + Object { + "default": "[]", + "description": "Data rows", + "name": "rows", + "type": "object", + }, + ], + "cssProperties": Array [ + Object { + "description": "Header font size", + "name": "--demo-wc-card-header-font-size", + }, + Object { + "description": "Font color for front", + "name": "--demo-wc-card-front-color", + }, + Object { + "description": "Font color for back", + "name": "--demo-wc-card-back-color", + }, + ], + "description": "This is a container looking like a card with a back and front side you can switch", + "events": Array [ + Object { + "description": "Fires whenever it switches between front/back", + "name": "side-changed", + }, + ], + "name": "input", + "path": "dummy-path-to-component", + "properties": Array [ + Object { + "attribute": "back-side", + "default": "false", + "description": "Indicates that the back of the card is shown", + "name": "backSide", + "type": "boolean", + }, + Object { + "attribute": "header", + "default": "\\"Your Message\\"", + "description": "Header message", + "name": "header", + "type": "string", + }, + Object { + "attribute": "rows", + "default": "[]", + "description": "Data rows", + "name": "rows", + "type": "object", + }, + ], + "slots": Array [ + Object { + "description": "This is an unnamed slot (the default slot)", + "name": "", + }, + ], + }, + ], + "version": "experimental", +} +`; diff --git a/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/input.js b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/input.js new file mode 100644 index 000000000000..ff166aa3ba51 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/input.js @@ -0,0 +1,198 @@ +import { CustomEvent } from 'global'; +import { LitElement, html, css } from 'lit-element'; + +const demoWcCardStyle = css` + :host { + display: block; + position: relative; + width: 250px; + height: 200px; + border-radius: 10px; + transform-style: preserve-3d; + transition: all 0.8s ease; + } + + .header { + font-weight: bold; + font-size: var(--demo-wc-card-header-font-size, 16px); + text-align: center; + } + + .content { + padding: 20px 10px 0 10px; + flex-grow: 1; + } + + .footer { + display: flex; + } + + dl { + margin: 0; + text-align: left; + } + + dd { + margin-left: 15px; + } + + button { + border-radius: 15px; + width: 30px; + height: 30px; + background: #fff; + border: 1px solid #ccc; + color: #000; + font-size: 21px; + line-height: 27px; + font-weight: bold; + cursor: pointer; + margin: 5px; + } + + .note { + flex-grow: 1; + color: #666; + font-size: 16px; + font-weight: bold; + text-align: left; + padding-top: 15px; + } + + :host([back-side]) { + transform: rotateY(180deg); + } + + #front, + #back { + position: absolute; + width: 250px; + box-sizing: border-box; + box-shadow: #ccc 3px 3px 2px 1px; + padding: 10px; + display: flex; + flex-flow: column; + top: 0; + left: 0; + height: 100%; + border-radius: 10px; + backface-visibility: hidden; + overflow: hidden; + } + + #front { + background: linear-gradient(141deg, #aaa 25%, #eee 40%, #ddd 55%); + color: var(--demo-wc-card-front-color, #000); + } + + #back { + background: linear-gradient(141deg, #333 25%, #aaa 40%, #666 55%); + color: var(--demo-wc-card-back-color, #fff); + text-align: center; + transform: rotateY(180deg) translate3d(0px, 0, 1px); + } + + #back .note { + color: #fff; + } +`; + +/** + * This is a container looking like a card with a back and front side you can switch + * + * @slot - This is an unnamed slot (the default slot) + * @fires side-changed - Fires whenever it switches between front/back + * @cssprop --demo-wc-card-header-font-size - Header font size + * @cssprop --demo-wc-card-front-color - Font color for front + * @cssprop --demo-wc-card-back-color - Font color for back + */ +export class DemoWcCard extends LitElement { + static get properties() { + return { + backSide: { + type: Boolean, + reflect: true, + attribute: 'back-side', + }, + header: { type: String }, + rows: { type: Object }, + }; + } + + static get styles() { + return demoWcCardStyle; + } + + constructor() { + super(); + + /** + * Indicates that the back of the card is shown + */ + this.backSide = false; + + /** + * Header message + */ + this.header = 'Your Message'; + + /** + * Data rows + */ + this.rows = []; + } + + toggle() { + this.backSide = !this.backSide; + } + + render() { + return html` +
+
+ ${this.header} +
+
+ +
+ +
+
+
+ ${this.header} +
+ +
+ ${this.rows.length === 0 + ? html`` + : html` +
+ ${this.rows.map( + row => html` +
${row.header}
+
${row.value}
+ ` + )} +
+ `} +
+ +
+ `; + } + + updated(changedProperties) { + if (changedProperties.has('backSide') && changedProperties.get('backSide') !== undefined) { + this.dispatchEvent(new CustomEvent('side-changed')); + } + } +} + +// eslint-disable-next-line no-undef +customElements.define('input', DemoWcCard); diff --git a/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/properties.snapshot b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/properties.snapshot new file mode 100644 index 000000000000..40a878b10105 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-element-demo-card/properties.snapshot @@ -0,0 +1,139 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`web-components component properties lit-element-demo-card 1`] = ` +Object { + "sections": Object { + "attributes": Array [ + Object { + "defaultValue": Object { + "summary": "false", + }, + "description": "Indicates that the back of the card is shown", + "name": "back-side", + "required": "", + "type": Object { + "summary": "boolean", + }, + }, + Object { + "defaultValue": Object { + "summary": "\\"Your Message\\"", + }, + "description": "Header message", + "name": "header", + "required": "", + "type": Object { + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "summary": "[]", + }, + "description": "Data rows", + "name": "rows", + "required": "", + "type": Object { + "summary": "object", + }, + }, + ], + "css": Array [ + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "Header font size", + "name": "--demo-wc-card-header-font-size", + "required": "", + "type": Object { + "summary": undefined, + }, + }, + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "Font color for front", + "name": "--demo-wc-card-front-color", + "required": "", + "type": Object { + "summary": undefined, + }, + }, + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "Font color for back", + "name": "--demo-wc-card-back-color", + "required": "", + "type": Object { + "summary": undefined, + }, + }, + ], + "events": Array [ + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "Fires whenever it switches between front/back", + "name": "side-changed", + "required": "", + "type": Object { + "summary": undefined, + }, + }, + ], + "properties": Array [ + Object { + "defaultValue": Object { + "summary": "false", + }, + "description": "Indicates that the back of the card is shown", + "name": "backSide", + "required": "", + "type": Object { + "summary": "boolean", + }, + }, + Object { + "defaultValue": Object { + "summary": "\\"Your Message\\"", + }, + "description": "Header message", + "name": "header", + "required": "", + "type": Object { + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "summary": "[]", + }, + "description": "Data rows", + "name": "rows", + "required": "", + "type": Object { + "summary": "object", + }, + }, + ], + "slots": Array [ + Object { + "defaultValue": Object { + "summary": undefined, + }, + "description": "This is an unnamed slot (the default slot)", + "name": "", + "required": "", + "type": Object { + "summary": undefined, + }, + }, + ], + }, +} +`; diff --git a/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/custom-elements.snapshot b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/custom-elements.snapshot new file mode 100644 index 000000000000..c1416386b1b1 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/custom-elements.snapshot @@ -0,0 +1,13 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`web-components component properties lit-html-welcome 1`] = ` +Object { + "tags": Array [ + Object { + "name": "input", + "path": "dummy-path-to-component", + }, + ], + "version": "experimental", +} +`; diff --git a/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/input.js b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/input.js new file mode 100644 index 000000000000..30e6edec7cf2 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/input.js @@ -0,0 +1,61 @@ +import { html } from 'lit-html'; + +export const Welcome = () => html` +
+

Welcome to Storybook for Web Components

+

This is a UI component dev environment for your plain HTML snippets.

+

+ We've added some basic stories inside the stories directory. +
+ A story is a single state of one or more UI components. You can have as many stories as you + want. +
+ (Basically a story is like a visual test case.) +

+

+ See these sample + stories +

+

+ Just like that, you can add your own snippets as stories. +
+ You can also edit those snippets and see changes right away. +
+

+

+ Usually we create stories with smaller UI components in the app.
+ Have a look at the + + Writing Stories + + section in our documentation. +

+
+ + +`; + +// eslint-disable-next-line no-undef +customElements.define('input', Welcome); diff --git a/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/properties.snapshot b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/properties.snapshot new file mode 100644 index 000000000000..3ed546fa4e29 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/__testfixtures__/lit-html-welcome/properties.snapshot @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`web-components component properties lit-html-welcome 1`] = `false`; diff --git a/addons/docs/src/frameworks/web-components/config.js b/addons/docs/src/frameworks/web-components/config.js index 883c269e4e9f..c14ef2f9bfa8 100644 --- a/addons/docs/src/frameworks/web-components/config.js +++ b/addons/docs/src/frameworks/web-components/config.js @@ -1,64 +1,14 @@ /* global window */ /* eslint-disable import/no-extraneous-dependencies */ import { addParameters } from '@storybook/client-api'; -import { getCustomElements, isValidComponent, isValidMetaData } from '@storybook/web-components'; import React from 'react'; import { render } from 'lit-html'; - -function mapData(data) { - return data.map(item => ({ - name: item.name, - type: { summary: item.type }, - required: '', - description: item.description, - defaultValue: { summary: item.default !== undefined ? item.default : item.defaultValue }, - })); -} - -function isEmpty(obj) { - return Object.entries(obj).length === 0 && obj.constructor === Object; -} +import { extractProps, extractComponentDescription } from './custom-elements'; addParameters({ docs: { - extractProps: tagName => { - const customElements = getCustomElements(); - if (isValidComponent(tagName) && isValidMetaData(customElements)) { - const metaData = customElements.tags.find( - tag => tag.name.toUpperCase() === tagName.toUpperCase() - ); - const sections = {}; - if (metaData.attributes) { - sections.attributes = mapData(metaData.attributes); - } - if (metaData.properties) { - sections.properties = mapData(metaData.properties); - } - if (metaData.events) { - sections.events = mapData(metaData.events); - } - if (metaData.slots) { - sections.slots = mapData(metaData.slots); - } - if (metaData.cssProperties) { - sections.css = mapData(metaData.cssProperties); - } - return isEmpty(sections) ? false : { sections }; - } - return false; - }, - extractComponentDescription: tagName => { - const customElements = getCustomElements(); - if (isValidComponent(tagName) && isValidMetaData(customElements)) { - const metaData = customElements.tags.find( - tag => tag.name.toUpperCase() === tagName.toUpperCase() - ); - if (metaData && metaData.description) { - return metaData.description; - } - } - return false; - }, + extractProps, + extractComponentDescription, inlineStories: true, prepareForInline: storyFn => { class Story extends React.Component { diff --git a/addons/docs/src/frameworks/web-components/custom-elements.ts b/addons/docs/src/frameworks/web-components/custom-elements.ts new file mode 100644 index 000000000000..421bbcf06414 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/custom-elements.ts @@ -0,0 +1,88 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import { getCustomElements, isValidComponent, isValidMetaData } from '@storybook/web-components'; + +interface TagItem { + name: string; + type: string; + description: string; + default?: any; + defaultValue?: any; +} + +interface Tag { + name: string; + description: string; + attributes?: TagItem[]; + properties?: TagItem[]; + events?: TagItem[]; + slots?: TagItem[]; + cssProperties?: TagItem[]; +} + +interface CustomElements { + tags: Tag[]; +} + +interface Sections { + attributes?: any; + properties?: any; + events?: any; + slots?: any; + css?: any; +} + +function mapData(data: TagItem[]) { + return data.map(item => ({ + name: item.name, + type: { summary: item.type }, + required: '', + description: item.description, + defaultValue: { summary: item.default !== undefined ? item.default : item.defaultValue }, + })); +} + +function isEmpty(obj: object) { + return Object.entries(obj).length === 0 && obj.constructor === Object; +} + +export const extractPropsFromElements = (tagName: string, customElements: CustomElements) => { + if (!isValidComponent(tagName) || !isValidMetaData(customElements)) { + return null; + } + const metaData = customElements.tags.find( + tag => tag.name.toUpperCase() === tagName.toUpperCase() + ); + const sections: Sections = {}; + if (metaData.attributes) { + sections.attributes = mapData(metaData.attributes); + } + if (metaData.properties) { + sections.properties = mapData(metaData.properties); + } + if (metaData.events) { + sections.events = mapData(metaData.events); + } + if (metaData.slots) { + sections.slots = mapData(metaData.slots); + } + if (metaData.cssProperties) { + sections.css = mapData(metaData.cssProperties); + } + return isEmpty(sections) ? false : { sections }; +}; + +export const extractProps = (tagName: string) => { + const customElements: CustomElements = getCustomElements(); + return extractPropsFromElements(tagName, customElements); +}; + +export const extractComponentDescription = (tagName: string) => { + const customElements: CustomElements = getCustomElements(); + if (!isValidComponent(tagName) || !isValidMetaData(customElements)) { + return null; + } + const metaData = customElements.tags.find( + tag => tag.name.toUpperCase() === tagName.toUpperCase() + ); + return metaData && metaData.description; +}; diff --git a/addons/docs/src/frameworks/web-components/web-components-properties.test.ts b/addons/docs/src/frameworks/web-components/web-components-properties.test.ts new file mode 100644 index 000000000000..30a38a879a28 --- /dev/null +++ b/addons/docs/src/frameworks/web-components/web-components-properties.test.ts @@ -0,0 +1,57 @@ +import 'jest-specific-snapshot'; +import path from 'path'; +import fs from 'fs'; +import tmp from 'tmp'; +import { sync as spawnSync } from 'cross-spawn'; + +// File hierarchy: +// __testfixtures__ / some-test-case / input.* +const inputRegExp = /^input\..*$/; + +const runWebComponentsAnalyzer = (inputPath: string) => { + const { name: tmpDir, removeCallback } = tmp.dirSync(); + const customElementsFile = `${tmpDir}/custom-elements.json`; + spawnSync('wca', ['analyze', inputPath, '--outFile', customElementsFile], { + stdio: 'inherit', + }); + const output = fs.readFileSync(customElementsFile, 'utf8'); + removeCallback(); + return output; +}; + +describe('web-components component properties', () => { + // we need to mock lit-html and dynamically require custom-elements + // because lit-html is distributed as ESM not CJS + // https://github.com/Polymer/lit-html/issues/516 + jest.mock('lit-html', () => {}); + // eslint-disable-next-line global-require + const { extractPropsFromElements } = require('./custom-elements'); + + const fixturesDir = path.join(__dirname, '__testfixtures__'); + fs.readdirSync(fixturesDir, { withFileTypes: true }).forEach(testEntry => { + if (testEntry.isDirectory()) { + const testDir = path.join(fixturesDir, testEntry.name); + const testFile = fs.readdirSync(testDir).find(fileName => inputRegExp.test(fileName)); + if (testFile) { + it(testEntry.name, () => { + const inputPath = path.join(testDir, testFile); + + // snapshot the output of wca + const customElementsJson = runWebComponentsAnalyzer(inputPath); + const customElements = JSON.parse(customElementsJson); + customElements.tags.forEach((tag: any) => { + // eslint-disable-next-line no-param-reassign + tag.path = 'dummy-path-to-component'; + }); + expect(customElements).toMatchSpecificSnapshot( + path.join(testDir, 'custom-elements.snapshot') + ); + + // snapshot the properties + const properties = extractPropsFromElements('input', customElements); + expect(properties).toMatchSpecificSnapshot(path.join(testDir, 'properties.snapshot')); + }); + } + } + }); +}); diff --git a/yarn.lock b/yarn.lock index bd2d64621711..dd77fd0cd681 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13058,7 +13058,7 @@ fast-glob@^2.0.2, fast-glob@^2.2.2, fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.0.3, fast-glob@^3.1.1: +fast-glob@^3.0.3, fast-glob@^3.1.0, fast-glob@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82" integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g== @@ -29131,6 +29131,11 @@ ts-simple-ast@12.4.0: tslib "^1.9.0" typescript "2.9.1" +ts-simple-type@~0.3.6: + version "0.3.7" + resolved "https://registry.yarnpkg.com/ts-simple-type/-/ts-simple-type-0.3.7.tgz#1e77222c3d90d7093f80a954e74c725fd99c911c" + integrity sha512-bDXWURwpDpe1mA5E9eldmI0Mpt9zGprhtN/ZTLOJjsAMyeMy1UT7WvGRQghYewIYBYxDZurChhe4DrsPbcCVrA== + tsconfig-paths-webpack-plugin@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.2.0.tgz#6e70bd42915ad0efb64d3385163f0c1270f3e04d" @@ -29343,7 +29348,7 @@ typescript@3.5.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== -typescript@3.7.5, typescript@^3.2.4, typescript@^3.4.0: +typescript@3.7.5, typescript@^3.2.4, typescript@^3.4.0, typescript@^3.5.3: version "3.7.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae" integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw== @@ -30483,6 +30488,16 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-component-analyzer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/web-component-analyzer/-/web-component-analyzer-1.0.3.tgz#da73dff15d6a8f4864311664476f0f436274e97d" + integrity sha512-QA6GVVJrKRPHLVqPv4evY0H+du1yY+E1q8c82bdY5e10+pWsRfeYA+Hsh2r8yl1EGQVC55SeV3tGvJ6+CxaH/Q== + dependencies: + fast-glob "^3.1.0" + ts-simple-type "~0.3.6" + typescript "^3.5.3" + yargs "^15.0.2" + web-namespaces@^1.0.0, web-namespaces@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" @@ -31741,7 +31756,7 @@ yargs@^14.0.0, yargs@^14.2.2: y18n "^4.0.0" yargs-parser "^15.0.0" -yargs@^15.0.0: +yargs@^15.0.0, yargs@^15.0.2: version "15.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== From 8063b5291c97a95504f780977b16030ef7172c7a Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 16:14:57 +0800 Subject: [PATCH 08/37] Props: #9399 repro test --- .../9399-js-proptypes-shape/docgen.snapshot | 47 +++++++++++++++++++ .../9399-js-proptypes-shape/input.js | 16 +++++++ 2 files changed, 63 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/input.js diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/docgen.snapshot new file mode 100644 index 000000000000..700732942e9a --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/docgen.snapshot @@ -0,0 +1,47 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9399-js-proptypes-shape 1`] = ` +"import React from 'react'; +import PropTypes from 'prop-types'; +export const Credits = ({ + areas +}) => React.createElement(React.Fragment, null, JSON.stringify(areas)); // https://github.com/storybookjs/storybook/issues/9399 + +Credits.propTypes = { + areas: PropTypes.arrayOf(PropTypes.shape({ + position: PropTypes.string.isRequired, + names: PropTypes.arrayOf(PropTypes.string).isRequired + })).isRequired +}; +export const component = Credits; +Credits.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Credits\\", + \\"props\\": { + \\"areas\\": { + \\"type\\": { + \\"name\\": \\"arrayOf\\", + \\"value\\": { + \\"name\\": \\"shape\\", + \\"value\\": { + \\"position\\": { + \\"name\\": \\"string\\", + \\"required\\": true + }, + \\"names\\": { + \\"name\\": \\"arrayOf\\", + \\"value\\": { + \\"name\\": \\"string\\" + }, + \\"required\\": true + } + } + } + }, + \\"required\\": true, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/input.js b/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/input.js new file mode 100644 index 000000000000..af120524fa8f --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/input.js @@ -0,0 +1,16 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +export const Credits = ({ areas }) => <>{JSON.stringify(areas)}; + +// https://github.com/storybookjs/storybook/issues/9399 +Credits.propTypes = { + areas: PropTypes.arrayOf( + PropTypes.shape({ + position: PropTypes.string.isRequired, + names: PropTypes.arrayOf(PropTypes.string).isRequired, + }) + ).isRequired, +}; + +export const component = Credits; From 14456b27f5c50b3645b80e93b23c86369201e9a5 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 16:17:44 +0800 Subject: [PATCH 09/37] Props: #8663 repro --- addons/docs/package.json | 1 + .../8663-js-styled-components/docgen.snapshot | 33 ++++++++++++++ .../8663-js-styled-components/input.js | 20 +++++++++ .../properties.snapshot | 18 ++++++++ yarn.lock | 45 ++++++++++++++++--- 5 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/properties.snapshot diff --git a/addons/docs/package.json b/addons/docs/package.json index fd02fd770d6b..8c824146e742 100644 --- a/addons/docs/package.json +++ b/addons/docs/package.json @@ -83,6 +83,7 @@ "jest-specific-snapshot": "^2.0.0", "lit-html": "^1.0.0", "require-from-string": "^2.0.2", + "styled-components": "^5.0.1", "tmp": "^0.1.0", "web-component-analyzer": "^1.0.3" }, diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/docgen.snapshot new file mode 100644 index 000000000000..b8dfa2067cd5 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/docgen.snapshot @@ -0,0 +1,33 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8663-js-styled-components 1`] = ` +"import React from 'react'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +const Box = styled.div\` + background-color: \${props => props.bg}; +\`; +Box.propTypes = { + bg: PropTypes.string +}; +export const MyBox = props => React.createElement(Box, props); +MyBox.propTypes = { + // eslint-disable-next-line react/require-default-props + bg: PropTypes.string +}; +export const component = MyBox; +MyBox.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"MyBox\\", + \\"props\\": { + \\"bg\\": { + \\"type\\": { + \\"name\\": \\"string\\" + }, + \\"required\\": false, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/input.js b/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/input.js new file mode 100644 index 000000000000..493ebe783cbd --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/input.js @@ -0,0 +1,20 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; + +const Box = styled.div` + background-color: ${props => props.bg}; +`; + +Box.propTypes = { + bg: PropTypes.string, +}; + +export const MyBox = props => ; + +MyBox.propTypes = { + // eslint-disable-next-line react/require-default-props + bg: PropTypes.string, +}; + +export const component = MyBox; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/properties.snapshot new file mode 100644 index 000000000000..0681e3864563 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8663-js-styled-components/properties.snapshot @@ -0,0 +1,18 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8663-js-styled-components 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": null, + "description": "", + "name": "bg", + "required": false, + "type": Object { + "detail": undefined, + "summary": "string", + }, + }, + ], +} +`; diff --git a/yarn.lock b/yarn.lock index dd77fd0cd681..dad9ebbb2192 100644 --- a/yarn.lock +++ b/yarn.lock @@ -387,7 +387,7 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.8.3": +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== @@ -1725,7 +1725,7 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.4.tgz#f14932887422c9056b15a8d222a9074a7dfa2831" integrity sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A== -"@emotion/is-prop-valid@0.8.6", "@emotion/is-prop-valid@^0.8.6": +"@emotion/is-prop-valid@0.8.6", "@emotion/is-prop-valid@^0.8.3", "@emotion/is-prop-valid@^0.8.6": version "0.8.6" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz#4757646f0a58e9dec614c47c838e7147d88c263c" integrity sha512-mnZMho3Sq8BfzkYYRVc8ilQTnc8U02Ytp6J1AwM6taQStZ3AhsEJBX2LzhA/LJirNCwM2VtHL3VFIZ+sNJUgUQ== @@ -1793,12 +1793,12 @@ "@emotion/styled-base" "^10.0.27" babel-plugin-emotion "^10.0.27" -"@emotion/stylis@0.8.5": +"@emotion/stylis@0.8.5", "@emotion/stylis@^0.8.4": version "0.8.5" resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== -"@emotion/unitless@0.7.5": +"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.4": version "0.7.5" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== @@ -6222,6 +6222,16 @@ babel-plugin-require-context-hook@^1.0.0: resolved "https://registry.yarnpkg.com/babel-plugin-require-context-hook/-/babel-plugin-require-context-hook-1.0.0.tgz#3f0e7cce87c338f53639b948632fd4e73834632d" integrity sha512-EMZD1563QUqLhzrqcThk759RhuNVX/ZJdrtGK6drwzgvnR+ARjWyXIHPbu+tUNaMGtPz/gQeAM2M6VUw2UiUeA== +"babel-plugin-styled-components@>= 1": + version "1.10.7" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz#3494e77914e9989b33cc2d7b3b29527a949d635c" + integrity sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-module-imports" "^7.0.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -9961,6 +9971,15 @@ css-to-react-native@^2.2.1: css-color-keywords "^1.0.0" postcss-value-parser "^3.3.0" +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + css-tree@1.0.0-alpha.29: version "1.0.0-alpha.29" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" @@ -15007,7 +15026,7 @@ hoek@4.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== -hoist-non-react-statics@^3.3.0: +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -28086,6 +28105,22 @@ style-unit@^2.0.0: dependencies: universal-env "^2.0.0" +styled-components@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.0.1.tgz#57782a6471031abefb2db5820a1876ae853bc619" + integrity sha512-E0xKTRIjTs4DyvC1MHu/EcCXIj6+ENCP8hP01koyoADF++WdBUOrSGwU1scJRw7/YaYOhDvvoad6VlMG+0j53A== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^0.8.3" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + styled_string@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/styled_string/-/styled_string-0.0.1.tgz#d22782bd81295459bc4f1df18c4bad8e94dd124a" From 3cfe6e19ad6a07500d604c3a52741c4cd4fa1492 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 16:50:23 +0800 Subject: [PATCH 10/37] Props: #9626 repro --- .../9626-js-default-values/docgen.snapshot | 24 +++++++++++++++++++ .../9626-js-default-values/input.js | 5 ++++ .../properties.snapshot | 21 ++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/docgen.snapshot new file mode 100644 index 000000000000..67528fe5cdd7 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/docgen.snapshot @@ -0,0 +1,24 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9626-js-default-values 1`] = ` +"import React from 'react'; // eslint-disable-next-line react/prop-types + +export const Tag = ({ + title = 'Beta' +}) => React.createElement(\\"div\\", null, title); +export const component = Tag; +Tag.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Tag\\", + \\"props\\": { + \\"title\\": { + \\"defaultValue\\": { + \\"value\\": \\"'Beta'\\", + \\"computed\\": false + }, + \\"required\\": false + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/input.js b/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/input.js new file mode 100644 index 000000000000..451411c1c1e4 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/input.js @@ -0,0 +1,5 @@ +import React from 'react'; + +// eslint-disable-next-line react/prop-types +export const Tag = ({ title = 'Beta' }) =>
{title}
; +export const component = Tag; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/properties.snapshot new file mode 100644 index 000000000000..b1043c87f419 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9626-js-default-values/properties.snapshot @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9626-js-default-values 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'Beta'", + }, + "description": undefined, + "name": "title", + "required": false, + "type": Object { + "detail": undefined, + "summary": "unknown", + }, + }, + ], +} +`; From b467fa8c958fe224eceb1fc87d5f31f943f9f719 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 16:50:50 +0800 Subject: [PATCH 11/37] Addon-docs: React props extraction stories --- .../src/frameworks/react/react-properties.stories.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 3398298c6531..952ded645ebb 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -3,7 +3,13 @@ import { storiesOf } from '@storybook/react'; import { PropsTable } from '@storybook/components'; import { extractProps } from './extractProps'; -const fixtures = ['js-class-component', 'ts-function-component']; +const fixtures = [ + 'js-class-component', + 'ts-function-component', + '9399-js-proptypes-shape', + '8663-js-styled-components', + '9626-js-default-values', +]; const stories = storiesOf('Properties/React', module); From 8219af19d09c5142f64830e545fdfb496c5fe636 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 16:58:35 +0800 Subject: [PATCH 12/37] Props: #9668 attempted repro --- .../docgen.snapshot | 40 +++++++++++++++++++ .../9668-js-proptypes-no-jsdoc/input.js | 13 ++++++ .../properties.snapshot | 28 +++++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 82 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/docgen.snapshot new file mode 100644 index 000000000000..36193a4d8e6e --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/docgen.snapshot @@ -0,0 +1,40 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9668-js-proptypes-no-jsdoc 1`] = ` +"/* eslint-disable react/require-default-props */ + +/* eslint-disable react/no-unused-prop-types */ + +/* eslint-disable react/forbid-prop-types */ +import React from 'react'; +import PropTypes from 'prop-types'; + +const CCTable = props => React.createElement(React.Fragment, null, JSON.stringify(props)); + +CCTable.propTypes = { + heads: PropTypes.array.isRequired, + onAddClick: PropTypes.func +}; +export const component = CCTable; +CCTable.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"CCTable\\", + \\"props\\": { + \\"heads\\": { + \\"type\\": { + \\"name\\": \\"array\\" + }, + \\"required\\": true, + \\"description\\": \\"\\" + }, + \\"onAddClick\\": { + \\"type\\": { + \\"name\\": \\"func\\" + }, + \\"required\\": false, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/input.js b/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/input.js new file mode 100644 index 000000000000..738e126bd17d --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/input.js @@ -0,0 +1,13 @@ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +/* eslint-disable react/forbid-prop-types */ +import React from 'react'; +import PropTypes from 'prop-types'; + +const CCTable = props => <>{JSON.stringify(props)}; +CCTable.propTypes = { + heads: PropTypes.array.isRequired, + onAddClick: PropTypes.func, +}; + +export const component = CCTable; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/properties.snapshot new file mode 100644 index 000000000000..4dea4decbacb --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9668-js-proptypes-no-jsdoc/properties.snapshot @@ -0,0 +1,28 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9668-js-proptypes-no-jsdoc 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": null, + "description": "", + "name": "heads", + "required": true, + "type": Object { + "detail": undefined, + "summary": "array", + }, + }, + Object { + "defaultValue": null, + "description": "", + "name": "onAddClick", + "required": false, + "type": Object { + "detail": undefined, + "summary": "func", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 952ded645ebb..6c1f94842f66 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -9,6 +9,7 @@ const fixtures = [ '9399-js-proptypes-shape', '8663-js-styled-components', '9626-js-default-values', + '9668-js-proptypes-no-jsdoc', ]; const stories = storiesOf('Properties/React', module); From e3927d9cea7dc7fe2473eff06e2223e150ff2755 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 17:07:47 +0800 Subject: [PATCH 13/37] Props: #8143 repro --- .../8143-ts-react-fc-generics/docgen.snapshot | 24 +++++++++++++++++++ .../8143-ts-react-fc-generics/input.tsx | 10 ++++++++ .../properties.snapshot | 21 ++++++++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 56 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/docgen.snapshot new file mode 100644 index 000000000000..57d22462232f --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/docgen.snapshot @@ -0,0 +1,24 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8143-ts-react-fc-generics 1`] = ` +"import React from 'react'; +export const Text = ({ + padding = '0', + margin +}) => React.createElement(React.Fragment, null, \\"Text\\"); +export const component = Text; +Text.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Text\\", + \\"props\\": { + \\"padding\\": { + \\"defaultValue\\": { + \\"value\\": \\"'0'\\", + \\"computed\\": false + }, + \\"required\\": false + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/input.tsx new file mode 100644 index 000000000000..9116328f1937 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/input.tsx @@ -0,0 +1,10 @@ +import React from 'react'; + +interface Props { + padding: string; + margin: number; +} + +export const Text: React.FC = ({ padding = '0', margin }) => <>Text; + +export const component = Text; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/properties.snapshot new file mode 100644 index 000000000000..7e70b8104795 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-react-fc-generics/properties.snapshot @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8143-ts-react-fc-generics 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'0'", + }, + "description": undefined, + "name": "padding", + "required": false, + "type": Object { + "detail": undefined, + "summary": "unknown", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 6c1f94842f66..625d0d5d5dc3 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -10,6 +10,7 @@ const fixtures = [ '8663-js-styled-components', '9626-js-default-values', '9668-js-proptypes-no-jsdoc', + '8143-ts-react-fc-generics', ]; const stories = storiesOf('Properties/React', module); From 412977380dbbe30f72f084d51f637ddcfbe1a96a Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 21:44:26 +0800 Subject: [PATCH 14/37] Props: #8143 repro for imported types --- .../8143-ts-imported-types/docgen.snapshot | 22 +++++++++++++++++++ .../8143-ts-imported-types/input.tsx | 10 +++++++++ .../properties.snapshot | 21 ++++++++++++++++++ .../8143-ts-imported-types/types.ts | 3 +++ .../react/react-properties.stories.tsx | 1 + 5 files changed, 57 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/properties.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/types.ts diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/docgen.snapshot new file mode 100644 index 000000000000..e07759d99ce9 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/docgen.snapshot @@ -0,0 +1,22 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8143-ts-imported-types 1`] = ` +"import React from 'react'; +export const FooComponent = foo => React.createElement(React.Fragment, null, JSON.stringify(foo)); +export const component = FooComponent; +FooComponent.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"FooComponent\\", + \\"props\\": { + \\"bar\\": { + \\"required\\": true, + \\"tsType\\": { + \\"name\\": \\"Foo['bar']\\", + \\"raw\\": \\"Foo['bar']\\" + }, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/input.tsx new file mode 100644 index 000000000000..7e30066389a2 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/input.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { Foo } from './types'; + +interface FooProps { + bar: Foo['bar']; +} + +export const FooComponent = (foo: FooProps) => <>{JSON.stringify(foo)}; + +export const component = FooComponent; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/properties.snapshot new file mode 100644 index 000000000000..704ca876098d --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/properties.snapshot @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8143-ts-imported-types 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "0", + }, + "description": "", + "name": "bar", + "required": true, + "type": Object { + "detail": undefined, + "summary": "Foo['bar']", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/types.ts b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/types.ts new file mode 100644 index 000000000000..156212cf95ce --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8143-ts-imported-types/types.ts @@ -0,0 +1,3 @@ +export interface Foo { + bar: number; +} diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 625d0d5d5dc3..a6534783ceae 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -11,6 +11,7 @@ const fixtures = [ '9626-js-default-values', '9668-js-proptypes-no-jsdoc', '8143-ts-react-fc-generics', + '8143-ts-imported-types', ]; const stories = storiesOf('Properties/React', module); From eaa147ae6239533c6db352e97cf06946c2720c65 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 22:13:35 +0800 Subject: [PATCH 15/37] Props: #8279 repro --- .../8279-js-styled-docgen/docgen.snapshot | 24 +++++++++++++++++++ .../8279-js-styled-docgen/input.js | 23 ++++++++++++++++++ .../8279-js-styled-docgen/properties.snapshot | 7 ++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 55 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/docgen.snapshot new file mode 100644 index 000000000000..670ab38ca25b --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/docgen.snapshot @@ -0,0 +1,24 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8279-js-styled-docgen 1`] = ` +"import styled from 'styled-components'; +import PropTypes from 'prop-types'; +/** + * Use \`A\` to provide a regular link + */ + +const A = styled('a')({ + margin: '8px 0', + outline: 'none' +}); +A.displayName = 'Link'; +A.defaultProps = { + children: 'This is a link' +}; +A.propTypes = { + /** That should be the clickable element */ + children: PropTypes.node.isRequired +}; +export default A; +export const component = A;" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/input.js b/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/input.js new file mode 100644 index 000000000000..95cf14f635c8 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/input.js @@ -0,0 +1,23 @@ +import styled from 'styled-components'; +import PropTypes from 'prop-types'; + +/** + * Use `A` to provide a regular link + */ +const A = styled('a')({ + margin: '8px 0', + outline: 'none', +}); + +A.displayName = 'Link'; +A.defaultProps = { + children: 'This is a link', +}; + +A.propTypes = { + /** That should be the clickable element */ + children: PropTypes.node.isRequired, +}; +export default A; + +export const component = A; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/properties.snapshot new file mode 100644 index 000000000000..b429f083fcc0 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8279-js-styled-docgen/properties.snapshot @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8279-js-styled-docgen 1`] = ` +Object { + "rows": Array [], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index a6534783ceae..048c37baceff 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -12,6 +12,7 @@ const fixtures = [ '9668-js-proptypes-no-jsdoc', '8143-ts-react-fc-generics', '8143-ts-imported-types', + '8279-js-styled-docgen', ]; const stories = storiesOf('Properties/React', module); From 964d40dc6917ac1b7e7184daa2ef064f7462165c Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 23:05:28 +0800 Subject: [PATCH 16/37] Props: #8180 repro --- .../8140-js-prop-types-oneof/docgen.snapshot | 102 ++++++++++++++++++ .../8140-js-prop-types-oneof/input.js | 27 +++++ .../properties.snapshot | 64 +++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 194 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/docgen.snapshot new file mode 100644 index 000000000000..2970f5434d36 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/docgen.snapshot @@ -0,0 +1,102 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8140-js-prop-types-oneof 1`] = ` +"/* eslint-disable react/no-unused-prop-types */ + +/* eslint-disable react/require-default-props */ +import React from 'react'; +import PropTypes from 'prop-types'; + +const Alert = props => React.createElement(React.Fragment, null, JSON.stringify(props)); + +Alert.defaultProps = { + mode: 'static', + type: 'warning' +}; +Alert.propTypes = { + mode: PropTypes.oneOf(['static', 'timed']), + type: PropTypes.oneOf(['success', 'warning', 'error', 'primary']), + message: PropTypes.string.isRequired, + + /** + * No background or border if static alert + */ + blank: PropTypes.bool, + + /** + * Allows icon override, accepts material icon name + */ + icon: PropTypes.string +}; +export const component = Alert; +Alert.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Alert\\", + \\"props\\": { + \\"mode\\": { + \\"defaultValue\\": { + \\"value\\": \\"'static'\\", + \\"computed\\": false + }, + \\"type\\": { + \\"name\\": \\"enum\\", + \\"value\\": [{ + \\"value\\": \\"'static'\\", + \\"computed\\": false + }, { + \\"value\\": \\"'timed'\\", + \\"computed\\": false + }] + }, + \\"required\\": false, + \\"description\\": \\"\\" + }, + \\"type\\": { + \\"defaultValue\\": { + \\"value\\": \\"'warning'\\", + \\"computed\\": false + }, + \\"type\\": { + \\"name\\": \\"enum\\", + \\"value\\": [{ + \\"value\\": \\"'success'\\", + \\"computed\\": false + }, { + \\"value\\": \\"'warning'\\", + \\"computed\\": false + }, { + \\"value\\": \\"'error'\\", + \\"computed\\": false + }, { + \\"value\\": \\"'primary'\\", + \\"computed\\": false + }] + }, + \\"required\\": false, + \\"description\\": \\"\\" + }, + \\"message\\": { + \\"type\\": { + \\"name\\": \\"string\\" + }, + \\"required\\": true, + \\"description\\": \\"\\" + }, + \\"blank\\": { + \\"type\\": { + \\"name\\": \\"bool\\" + }, + \\"required\\": false, + \\"description\\": \\"No background or border if static alert\\" + }, + \\"icon\\": { + \\"type\\": { + \\"name\\": \\"string\\" + }, + \\"required\\": false, + \\"description\\": \\"Allows icon override, accepts material icon name\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/input.js b/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/input.js new file mode 100644 index 000000000000..c3a1133a34a8 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/input.js @@ -0,0 +1,27 @@ +/* eslint-disable react/no-unused-prop-types */ +/* eslint-disable react/require-default-props */ +import React from 'react'; +import PropTypes from 'prop-types'; + +const Alert = props => <>{JSON.stringify(props)}; + +Alert.defaultProps = { + mode: 'static', + type: 'warning', +}; + +Alert.propTypes = { + mode: PropTypes.oneOf(['static', 'timed']), + type: PropTypes.oneOf(['success', 'warning', 'error', 'primary']), + message: PropTypes.string.isRequired, + /** + * No background or border if static alert + */ + blank: PropTypes.bool, + /** + * Allows icon override, accepts material icon name + */ + icon: PropTypes.string, +}; + +export const component = Alert; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/properties.snapshot new file mode 100644 index 000000000000..fcd3cad8942c --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8140-js-prop-types-oneof/properties.snapshot @@ -0,0 +1,64 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8140-js-prop-types-oneof 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'static'", + }, + "description": "", + "name": "mode", + "required": false, + "type": Object { + "detail": undefined, + "summary": "'static' | 'timed'", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'warning'", + }, + "description": "", + "name": "type", + "required": false, + "type": Object { + "detail": undefined, + "summary": "'success' | 'warning' | 'error' | 'primary'", + }, + }, + Object { + "defaultValue": null, + "description": "", + "name": "message", + "required": true, + "type": Object { + "detail": undefined, + "summary": "string", + }, + }, + Object { + "defaultValue": null, + "description": "No background or border if static alert", + "name": "blank", + "required": false, + "type": Object { + "detail": undefined, + "summary": "bool", + }, + }, + Object { + "defaultValue": null, + "description": "Allows icon override, accepts material icon name", + "name": "icon", + "required": false, + "type": Object { + "detail": undefined, + "summary": "string", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 048c37baceff..4abfea65b9fd 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -13,6 +13,7 @@ const fixtures = [ '8143-ts-react-fc-generics', '8143-ts-imported-types', '8279-js-styled-docgen', + '8140-js-prop-types-oneof', ]; const stories = storiesOf('Properties/React', module); From e3ab7571c56bbdf508268c679ebb0afe54037605 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 23:14:31 +0800 Subject: [PATCH 17/37] Props: #9023 repro --- .../9023-js-hoc/docgen.snapshot | 89 +++++++++++++++++++ .../__testfixtures__/9023-js-hoc/input.js | 39 ++++++++ .../9023-js-hoc/properties.snapshot | 54 +++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 183 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/docgen.snapshot new file mode 100644 index 000000000000..2bd3202c1a43 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/docgen.snapshot @@ -0,0 +1,89 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9023-js-hoc 1`] = ` +"/* eslint-disable react/forbid-prop-types */ + +/* eslint-disable react/require-default-props */ + +/* eslint-disable react/no-unused-prop-types */ + +/* eslint-disable react/prefer-stateless-function */ +import React from 'react'; +import PropTypes from 'prop-types'; + +const withStyles = themeFn => Comp => Comp; + +class Alert extends React.Component { + render() { + return React.createElement(React.Fragment, null, \\"Alert\\"); + } + +} + +Alert.propTypes = { + variant: PropTypes.string, + dismissible: PropTypes.bool, + icon: PropTypes.elementType, + classes: PropTypes.object.isRequired +}; +Alert.defaultProps = { + variant: 'primary', + dismissible: false +}; +const StyledAlert = withStyles(theme => ({ + alert: props => ({ + backgroundColor: theme.palette[props.variant].main + }), + message: { + display: 'flex', + alignItems: 'center' + }, + icon: { + marginRight: theme.spacing(2) + } +}))(Alert); +export const component = StyledAlert; +Alert.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Alert\\", + \\"props\\": { + \\"variant\\": { + \\"defaultValue\\": { + \\"value\\": \\"'primary'\\", + \\"computed\\": false + }, + \\"type\\": { + \\"name\\": \\"string\\" + }, + \\"required\\": false, + \\"description\\": \\"\\" + }, + \\"dismissible\\": { + \\"defaultValue\\": { + \\"value\\": \\"false\\", + \\"computed\\": false + }, + \\"type\\": { + \\"name\\": \\"bool\\" + }, + \\"required\\": false, + \\"description\\": \\"\\" + }, + \\"icon\\": { + \\"type\\": { + \\"name\\": \\"elementType\\" + }, + \\"required\\": false, + \\"description\\": \\"\\" + }, + \\"classes\\": { + \\"type\\": { + \\"name\\": \\"object\\" + }, + \\"required\\": true, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/input.js b/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/input.js new file mode 100644 index 000000000000..46f18c7ea3df --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/input.js @@ -0,0 +1,39 @@ +/* eslint-disable react/forbid-prop-types */ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +/* eslint-disable react/prefer-stateless-function */ +import React from 'react'; +import PropTypes from 'prop-types'; + +const withStyles = themeFn => Comp => Comp; + +class Alert extends React.Component { + render() { + return <>Alert; + } +} +Alert.propTypes = { + variant: PropTypes.string, + dismissible: PropTypes.bool, + icon: PropTypes.elementType, + classes: PropTypes.object.isRequired, +}; +Alert.defaultProps = { + variant: 'primary', + dismissible: false, +}; + +const StyledAlert = withStyles(theme => ({ + alert: props => ({ + backgroundColor: theme.palette[props.variant].main, + }), + message: { + display: 'flex', + alignItems: 'center', + }, + icon: { + marginRight: theme.spacing(2), + }, +}))(Alert); + +export const component = StyledAlert; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/properties.snapshot new file mode 100644 index 000000000000..6c8e78ce3878 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9023-js-hoc/properties.snapshot @@ -0,0 +1,54 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9023-js-hoc 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'primary'", + }, + "description": "", + "name": "variant", + "required": false, + "type": Object { + "detail": undefined, + "summary": "string", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "false", + }, + "description": "", + "name": "dismissible", + "required": false, + "type": Object { + "detail": undefined, + "summary": "bool", + }, + }, + Object { + "defaultValue": null, + "description": "", + "name": "icon", + "required": false, + "type": Object { + "detail": undefined, + "summary": "elementType", + }, + }, + Object { + "defaultValue": null, + "description": "", + "name": "classes", + "required": true, + "type": Object { + "detail": undefined, + "summary": "object", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 4abfea65b9fd..2f696e318e0a 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -14,6 +14,7 @@ const fixtures = [ '8143-ts-imported-types', '8279-js-styled-docgen', '8140-js-prop-types-oneof', + '9023-js-hoc', ]; const stories = storiesOf('Properties/React', module); From 85e4f6d790cacbc1c64a3bedf53d3f2c86d30e79 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 23:33:16 +0800 Subject: [PATCH 18/37] Props: #8740 repro --- .../8740-ts-multi-props/docgen.snapshot | 49 +++++++++++++++++++ .../8740-ts-multi-props/input.tsx | 21 ++++++++ .../8740-ts-multi-props/properties.snapshot | 21 ++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 92 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/docgen.snapshot new file mode 100644 index 000000000000..16b8164d715e --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/docgen.snapshot @@ -0,0 +1,49 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8740-ts-multi-props 1`] = ` +"import React from 'react'; +export const Header = ({ + size = 'a', + children +}) => React.createElement(\\"div\\", { + className: size +}, children); +export const Paragraph = ({ + size, + children +}) => React.createElement(\\"div\\", { + className: size +}, children); +Paragraph.defaultProps = { + size: 'md' +}; +export const component = Header; +Header.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Header\\", + \\"props\\": { + \\"size\\": { + \\"defaultValue\\": { + \\"value\\": \\"'a'\\", + \\"computed\\": false + }, + \\"required\\": false + } + } +}; +Paragraph.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Paragraph\\", + \\"props\\": { + \\"size\\": { + \\"defaultValue\\": { + \\"value\\": \\"'md'\\", + \\"computed\\": false + }, + \\"required\\": false + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/input.tsx new file mode 100644 index 000000000000..ee19cf1a8e94 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/input.tsx @@ -0,0 +1,21 @@ +import React from 'react'; + +export interface ElemAProps { + size?: 'a' | 'b' | 'c' | 'd'; +} + +export const Header: React.SFC = ({ size = 'a', children }) => ( +
{children}
+); + +export interface ElemBProps { + size?: 'sm' | 'md' | 'lg'; +} + +export const Paragraph: React.SFC = ({ size, children }) => ( +
{children}
+); + +Paragraph.defaultProps = { size: 'md' }; + +export const component = Header; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/properties.snapshot new file mode 100644 index 000000000000..9877ca576ceb --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8740-ts-multi-props/properties.snapshot @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8740-ts-multi-props 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'a'", + }, + "description": undefined, + "name": "size", + "required": false, + "type": Object { + "detail": undefined, + "summary": "unknown", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 2f696e318e0a..737547cb873c 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -15,6 +15,7 @@ const fixtures = [ '8279-js-styled-docgen', '8140-js-prop-types-oneof', '9023-js-hoc', + '8740-ts-multi-props', ]; const stories = storiesOf('Properties/React', module); From 822f3dfe70ae10a0dac035408addbd5fee991a29 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 14 Feb 2020 23:55:10 +0800 Subject: [PATCH 19/37] Props: #8894 forward-ref repro --- .../8894-ts-forward-ref/docgen.snapshot | 22 +++++++++++++++++++ .../8894-ts-forward-ref/input.tsx | 18 +++++++++++++++ .../8894-ts-forward-ref/properties.snapshot | 7 ++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 48 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot new file mode 100644 index 000000000000..f455ca864081 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot @@ -0,0 +1,22 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8894-ts-forward-ref 1`] = ` +"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +import React from 'react'; + +const InnerBox = props => React.createElement(React.Fragment, null, JSON.stringify(props)); +/** + * Use \`Box\` component to handle margins/paddings. + */ + + +export const Box = React.forwardRef((props, ref) => React.createElement(InnerBox, _extends({}, props, { + ref: ref +}))); +export const component = Box; +Box.__docgenInfo = { + \\"description\\": \\"Use \`Box\` component to handle margins/paddings.\\", + \\"methods\\": [] +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx new file mode 100644 index 000000000000..e3c5246992b0 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import styled from 'styled-components'; + +type Props = { + pt?: number | string; + p?: number | string; +}; + +const InnerBox: React.FC = props => <>{JSON.stringify(props)}; + +/** + * Use `Box` component to handle margins/paddings. + */ +export const Box: React.FC = React.forwardRef((props, ref) => ( + +)); + +export const component = Box; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot new file mode 100644 index 000000000000..5ac6038580af --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8894-ts-forward-ref 1`] = ` +Object { + "rows": Array [], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 737547cb873c..7e3b6c7d0a6a 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -16,6 +16,7 @@ const fixtures = [ '8140-js-prop-types-oneof', '9023-js-hoc', '8740-ts-multi-props', + '8894-ts-forward-ref', ]; const stories = storiesOf('Properties/React', module); From 92f8c43334c1d451addc718316c2f999529f6c6d Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 00:00:38 +0800 Subject: [PATCH 20/37] Props: #9556 repro --- .../docgen.snapshot | 33 +++++++++++++++++++ .../9556-ts-react-default-exports/input.tsx | 12 +++++++ .../properties.snapshot | 21 ++++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 67 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/docgen.snapshot new file mode 100644 index 000000000000..b9dce6097f0d --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/docgen.snapshot @@ -0,0 +1,33 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9556-ts-react-default-exports 1`] = ` +"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +/* eslint-disable react/button-has-type */ +import React from 'react'; +export const Button = ({ + isDisabled = false, + ...props +}) => React.createElement(\\"button\\", _extends({ + disabled: isDisabled +}, props)); +export const component = Button; +Button.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Button\\", + \\"props\\": { + \\"isDisabled\\": { + \\"defaultValue\\": { + \\"value\\": \\"false\\", + \\"computed\\": false + }, + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"boolean\\" + }, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/input.tsx new file mode 100644 index 000000000000..3517870221b2 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9556-ts-react-default-exports/input.tsx @@ -0,0 +1,12 @@ +/* eslint-disable react/button-has-type */ +import React from 'react'; + +export interface Props extends React.ButtonHTMLAttributes { + isDisabled?: boolean; +} + +export const Button: React.FC = ({ isDisabled = false, ...props }: Props) => ( + ; +} + +Button.propTypes = { + label: PropTypes.string.isRequired, + onClick: PropTypes.func.isRequired, +}; + +const MemoButton = React.memo(Button); +export const component = MemoButton; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9586-js-react-memo/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9586-js-react-memo/properties.snapshot new file mode 100644 index 000000000000..125e28045362 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9586-js-react-memo/properties.snapshot @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9586-js-react-memo 1`] = ` +Object { + "rows": Array [], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index d69bbe160d68..1530c6257178 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -22,6 +22,7 @@ const fixtures = [ '9591-ts-import-types', '9721-ts-deprecated-jsdoc', '9827-ts-default-values', + '9586-js-react-memo', ]; const stories = storiesOf('Properties/React', module); From 03a269399981849c2b2c4c256bb345b4b9829e65 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:00:59 +0800 Subject: [PATCH 27/37] Props: #9575 repro --- .../9575-ts-camel-case/docgen.snapshot | 40 +++++++++++++++++++ .../9575-ts-camel-case/input.tsx | 25 ++++++++++++ .../9575-ts-camel-case/properties.snapshot | 21 ++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 87 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/docgen.snapshot new file mode 100644 index 000000000000..c0d662e1f773 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/docgen.snapshot @@ -0,0 +1,40 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9575-ts-camel-case 1`] = ` +"import PropTypes from 'prop-types'; +import React from 'react'; + +const iconButton = function IconButton(props) { + return React.createElement(\\"div\\", { + className: \\"icon-button\\" + }, \\"icon-button\\"); +}; + +iconButton.propTypes = { + // eslint-disable-next-line react/no-unused-prop-types + color: PropTypes.string +}; +iconButton.defaultProps = { + color: 'primary' +}; +iconButton.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"iconButton\\", + \\"props\\": { + \\"color\\": { + \\"defaultValue\\": { + \\"value\\": \\"'primary'\\", + \\"computed\\": false + }, + \\"type\\": { + \\"name\\": \\"string\\" + }, + \\"required\\": false, + \\"description\\": \\"\\" + } + } +}; +export default iconButton; +export const component = iconButton;" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/input.tsx new file mode 100644 index 000000000000..2a146297e856 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/input.tsx @@ -0,0 +1,25 @@ +import PropTypes from 'prop-types'; +import React, { FC } from 'react'; + +export interface IProps { + /** + * button color + */ + color?: string; +} + +const iconButton: FC = function IconButton(props) { + return
icon-button
; +}; + +iconButton.propTypes = { + // eslint-disable-next-line react/no-unused-prop-types + color: PropTypes.string, +}; + +iconButton.defaultProps = { + color: 'primary', +}; + +export default iconButton; +export const component = iconButton; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/properties.snapshot new file mode 100644 index 000000000000..091cab030b64 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9575-ts-camel-case/properties.snapshot @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9575-ts-camel-case 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'primary'", + }, + "description": "", + "name": "color", + "required": false, + "type": Object { + "detail": undefined, + "summary": "string", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 1530c6257178..3ca500dfc2b6 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -23,6 +23,7 @@ const fixtures = [ '9721-ts-deprecated-jsdoc', '9827-ts-default-values', '9586-js-react-memo', + '9575-ts-camel-case', ]; const stories = storiesOf('Properties/React', module); From ed714ba365dcb449810464f33d12590fda1c8b1d Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:06:03 +0800 Subject: [PATCH 28/37] Props: #9493 repro --- .../9493-ts-display-name/docgen.snapshot | 37 +++++++++++++++++++ .../9493-ts-display-name/input.tsx | 37 +++++++++++++++++++ .../9493-ts-display-name/properties.snapshot | 21 +++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 96 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot new file mode 100644 index 000000000000..4110ce37cab5 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot @@ -0,0 +1,37 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9493-ts-display-name 1`] = ` +"import styled from '@emotion/styled'; +import React from 'react'; +const Wrapper = styled('div')(({ + theme +}) => ({ + backgroundColor: 'tomato', + color: 'white', + padding: 10 +})); + +/** + * This message should show up in the Docs panel if everything works fine. + */ +export const EmpireAlert = ({ + title = 'Code Yellow', + message +}) => React.createElement(Wrapper, null, React.createElement(\\"h1\\", null, title), React.createElement(\\"p\\", null, message)); +EmpireAlert.displayName = 'SomeOtherDisplayName'; +export const component = EmpireAlert; +EmpireAlert.__docgenInfo = { + \\"description\\": \\"This message should show up in the Docs panel if everything works fine.\\", + \\"methods\\": [], + \\"displayName\\": \\"SomeOtherDisplayName\\", + \\"props\\": { + \\"title\\": { + \\"defaultValue\\": { + \\"value\\": \\"'Code Yellow'\\", + \\"computed\\": false + }, + \\"required\\": false + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/input.tsx new file mode 100644 index 000000000000..57155c790165 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/input.tsx @@ -0,0 +1,37 @@ +import styled from '@emotion/styled'; +import React from 'react'; + +const Wrapper = styled('div')<{}>(({ theme }) => ({ + backgroundColor: 'tomato', + color: 'white', + padding: 10, +})); + +type AlertCode = 'Code Red' | 'Code Yellow' | 'Code Green'; + +export interface EmpireAlertProps { + /** + * A title that brings attention to the alert. + */ + title: AlertCode; + /** + * A message alerting about Empire activities. + */ + message: string; +} + +/** + * This message should show up in the Docs panel if everything works fine. + */ +export const EmpireAlert: React.FC = ({ + title = 'Code Yellow', + message, +}: EmpireAlertProps) => ( + +

{title}

+

{message}

+
+); +EmpireAlert.displayName = 'SomeOtherDisplayName'; + +export const component = EmpireAlert; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot new file mode 100644 index 000000000000..48cf034f3506 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9493-ts-display-name 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'Code Yellow'", + }, + "description": undefined, + "name": "title", + "required": false, + "type": Object { + "detail": undefined, + "summary": "unknown", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 3ca500dfc2b6..f0983a66056a 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -24,6 +24,7 @@ const fixtures = [ '9827-ts-default-values', '9586-js-react-memo', '9575-ts-camel-case', + '9493-ts-display-name', ]; const stories = storiesOf('Properties/React', module); From 57e571cada30114ffc57bfaef3c7f4045dc0a23a Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:06:52 +0800 Subject: [PATCH 29/37] Props: #9493 update snapshots --- .../9493-ts-display-name/docgen.snapshot | 24 ++++++++++++++++++- .../9493-ts-display-name/properties.snapshot | 17 +++++++++++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot index 4110ce37cab5..bfec8463a63b 100644 --- a/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot +++ b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/docgen.snapshot @@ -30,7 +30,29 @@ EmpireAlert.__docgenInfo = { \\"value\\": \\"'Code Yellow'\\", \\"computed\\": false }, - \\"required\\": false + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"union\\", + \\"raw\\": \\"'Code Red' | 'Code Yellow' | 'Code Green'\\", + \\"elements\\": [{ + \\"name\\": \\"literal\\", + \\"value\\": \\"'Code Red'\\" + }, { + \\"name\\": \\"literal\\", + \\"value\\": \\"'Code Yellow'\\" + }, { + \\"name\\": \\"literal\\", + \\"value\\": \\"'Code Green'\\" + }] + }, + \\"description\\": \\"A title that brings attention to the alert.\\" + }, + \\"message\\": { + \\"required\\": true, + \\"tsType\\": { + \\"name\\": \\"string\\" + }, + \\"description\\": \\"A message alerting about Empire activities.\\" } } };" diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot index 48cf034f3506..395c2943f310 100644 --- a/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot +++ b/addons/docs/src/frameworks/react/__testfixtures__/9493-ts-display-name/properties.snapshot @@ -8,12 +8,25 @@ Object { "detail": undefined, "summary": "'Code Yellow'", }, - "description": undefined, + "description": "A title that brings attention to the alert.", "name": "title", "required": false, "type": Object { "detail": undefined, - "summary": "unknown", + "summary": "union", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "1", + }, + "description": "A message alerting about Empire activities.", + "name": "message", + "required": true, + "type": Object { + "detail": undefined, + "summary": "string", }, }, ], From 1032b774211f15e67c3f9a01b28633a44a83a2d3 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:15:17 +0800 Subject: [PATCH 30/37] Props: #9511 repro --- .../8894-9511-ts-forward-ref/docgen.snapshot | 36 +++++++++++++++++++ .../8894-9511-ts-forward-ref/input.tsx | 25 +++++++++++++ .../properties.snapshot | 34 ++++++++++++++++++ .../8894-ts-forward-ref/docgen.snapshot | 22 ------------ .../8894-ts-forward-ref/input.tsx | 18 ---------- .../8894-ts-forward-ref/properties.snapshot | 7 ---- .../react/react-properties.stories.tsx | 2 +- 7 files changed, 96 insertions(+), 48 deletions(-) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/properties.snapshot delete mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot delete mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx delete mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/docgen.snapshot new file mode 100644 index 000000000000..43d37ef2103a --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/docgen.snapshot @@ -0,0 +1,36 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8894-9511-ts-forward-ref 1`] = ` +"import React, { forwardRef } from 'react'; +const Button = forwardRef(({ + disabled = false, + variant = 'small', + children +}, ref) => // eslint-disable-next-line react/button-has-type +React.createElement(\\"button\\", { + disabled: disabled, + ref: ref +}, children, \\" \\", variant)); +Button.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"props\\": { + \\"disabled\\": { + \\"defaultValue\\": { + \\"value\\": \\"false\\", + \\"computed\\": false + }, + \\"required\\": false + }, + \\"variant\\": { + \\"defaultValue\\": { + \\"value\\": \\"'small'\\", + \\"computed\\": false + }, + \\"required\\": false + } + } +}; +export default Button; +export const component = Button;" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/input.tsx new file mode 100644 index 000000000000..0878c8cd8ca3 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/input.tsx @@ -0,0 +1,25 @@ +import React, { forwardRef } from 'react'; + +interface ButtonProps { + /** + * Sets the button size. + */ + variant?: 'small' | 'large'; + /** + * Disables the button. + */ + disabled?: boolean; +} + +const Button = forwardRef( + ({ disabled = false, variant = 'small', children }, ref) => ( + // eslint-disable-next-line react/button-has-type + + ) +); + +export default Button; + +export const component = Button; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/properties.snapshot new file mode 100644 index 000000000000..63a04364ae3a --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8894-9511-ts-forward-ref/properties.snapshot @@ -0,0 +1,34 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8894-9511-ts-forward-ref 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "false", + }, + "description": undefined, + "name": "disabled", + "required": false, + "type": Object { + "detail": undefined, + "summary": "unknown", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "'small'", + }, + "description": undefined, + "name": "variant", + "required": false, + "type": Object { + "detail": undefined, + "summary": "unknown", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot deleted file mode 100644 index f455ca864081..000000000000 --- a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/docgen.snapshot +++ /dev/null @@ -1,22 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`react component properties 8894-ts-forward-ref 1`] = ` -"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -import React from 'react'; - -const InnerBox = props => React.createElement(React.Fragment, null, JSON.stringify(props)); -/** - * Use \`Box\` component to handle margins/paddings. - */ - - -export const Box = React.forwardRef((props, ref) => React.createElement(InnerBox, _extends({}, props, { - ref: ref -}))); -export const component = Box; -Box.__docgenInfo = { - \\"description\\": \\"Use \`Box\` component to handle margins/paddings.\\", - \\"methods\\": [] -};" -`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx deleted file mode 100644 index e3c5246992b0..000000000000 --- a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/input.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; - -type Props = { - pt?: number | string; - p?: number | string; -}; - -const InnerBox: React.FC = props => <>{JSON.stringify(props)}; - -/** - * Use `Box` component to handle margins/paddings. - */ -export const Box: React.FC = React.forwardRef((props, ref) => ( - -)); - -export const component = Box; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot deleted file mode 100644 index 5ac6038580af..000000000000 --- a/addons/docs/src/frameworks/react/__testfixtures__/8894-ts-forward-ref/properties.snapshot +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`react component properties 8894-ts-forward-ref 1`] = ` -Object { - "rows": Array [], -} -`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index f0983a66056a..311f2bfa225d 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -16,7 +16,6 @@ const fixtures = [ '8140-js-prop-types-oneof', '9023-js-hoc', '8740-ts-multi-props', - '8894-ts-forward-ref', '9556-ts-react-default-exports', '9592-ts-styled-props', '9591-ts-import-types', @@ -25,6 +24,7 @@ const fixtures = [ '9586-js-react-memo', '9575-ts-camel-case', '9493-ts-display-name', + '8894-9511-ts-forward-ref', ]; const stories = storiesOf('Properties/React', module); From dd10817f392544abc88f09f5d9c8fb4cda8ad62c Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:20:41 +0800 Subject: [PATCH 31/37] Props: #9465 repro --- .../9465-ts-type-props/docgen.snapshot | 33 +++++++++++++++++++ .../9465-ts-type-props/input.tsx | 12 +++++++ .../9465-ts-type-props/properties.snapshot | 21 ++++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 67 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/docgen.snapshot new file mode 100644 index 000000000000..58c223819ff8 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/docgen.snapshot @@ -0,0 +1,33 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9465-ts-type-props 1`] = ` +"import React from 'react'; + +const Component = ({ + disabled = false, + children +}) => // eslint-disable-next-line react/button-has-type +React.createElement(\\"button\\", { + disabled: disabled +}, children); + +export const component = Component; +Component.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Component\\", + \\"props\\": { + \\"disabled\\": { + \\"defaultValue\\": { + \\"value\\": \\"false\\", + \\"computed\\": false + }, + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"boolean\\" + }, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/input.tsx new file mode 100644 index 000000000000..e5627c8058fa --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/input.tsx @@ -0,0 +1,12 @@ +import React from 'react'; + +type Props = React.ButtonHTMLAttributes & { + disabled?: boolean; +}; + +const Component = ({ disabled = false, children }: Props) => ( + // eslint-disable-next-line react/button-has-type + +); + +export const component = Component; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/properties.snapshot new file mode 100644 index 000000000000..67f69b4def7c --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9465-ts-type-props/properties.snapshot @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9465-ts-type-props 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "false", + }, + "description": "", + "name": "disabled", + "required": false, + "type": Object { + "detail": undefined, + "summary": "boolean", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 311f2bfa225d..e9d6739ac6dd 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -25,6 +25,7 @@ const fixtures = [ '9575-ts-camel-case', '9493-ts-display-name', '8894-9511-ts-forward-ref', + '9465-ts-type-props', ]; const stories = storiesOf('Properties/React', module); From 28f7a7ef37d9c8b0ecbb539092eeb5102a7c83af Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:25:36 +0800 Subject: [PATCH 32/37] Props: #8428 repro --- .../8428-js-static-prop-types/docgen.snapshot | 41 +++++++++++++++++++ .../8428-js-static-prop-types/input.js | 20 +++++++++ .../properties.snapshot | 18 ++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 80 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/input.js create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot new file mode 100644 index 000000000000..131fca1e9e66 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot @@ -0,0 +1,41 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8428-js-static-prop-types 1`] = ` +"function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +/* eslint-disable react/no-unused-prop-types */ + +/* eslint-disable react/require-default-props */ +import React from 'react'; +import PropTypes from 'prop-types'; // eslint-disable-next-line react/prefer-stateless-function + +export default class Test extends React.Component { + render() { + return React.createElement(\\"div\\", null, \\"test\\"); + } + +} + +_defineProperty(Test, \\"propTypes\\", { + /** + * Please work... + * */ + test: PropTypes.string +}); + +export const component = Test; +Test.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Test\\", + \\"props\\": { + \\"test\\": { + \\"type\\": { + \\"name\\": \\"string\\" + }, + \\"required\\": false, + \\"description\\": \\"Please work...\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/input.js b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/input.js new file mode 100644 index 000000000000..4b416fe973a4 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/input.js @@ -0,0 +1,20 @@ +/* eslint-disable react/no-unused-prop-types */ +/* eslint-disable react/require-default-props */ +import React from 'react'; +import PropTypes from 'prop-types'; + +// eslint-disable-next-line react/prefer-stateless-function +export default class Test extends React.Component { + static propTypes = { + /** + * Please work... + */ + test: PropTypes.string, + }; + + render() { + return
test
; + } +} + +export const component = Test; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/properties.snapshot new file mode 100644 index 000000000000..dd23348be458 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/properties.snapshot @@ -0,0 +1,18 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 8428-js-static-prop-types 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": null, + "description": "Please work...", + "name": "test", + "required": false, + "type": Object { + "detail": undefined, + "summary": "string", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index e9d6739ac6dd..386c3b760896 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -26,6 +26,7 @@ const fixtures = [ '9493-ts-display-name', '8894-9511-ts-forward-ref', '9465-ts-type-props', + '8428-js-static-prop-types', ]; const stories = storiesOf('Properties/React', module); From 249de2c8af25b78e47edd01f45ec1253703f7840 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:26:01 +0800 Subject: [PATCH 33/37] Update docgen.snapshot --- .../__testfixtures__/8428-js-static-prop-types/docgen.snapshot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot index 131fca1e9e66..fc7b04959c73 100644 --- a/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot +++ b/addons/docs/src/frameworks/react/__testfixtures__/8428-js-static-prop-types/docgen.snapshot @@ -19,7 +19,7 @@ export default class Test extends React.Component { _defineProperty(Test, \\"propTypes\\", { /** * Please work... - * */ + */ test: PropTypes.string }); From ce8a9f2772c77274672b4b32bbbbaf137f446b5e Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 01:32:40 +0800 Subject: [PATCH 34/37] Props: #9764 repro --- .../9764-ts-extend-props/docgen.snapshot | 43 +++++++++++++++++ .../9764-ts-extend-props/input.tsx | 17 +++++++ .../9764-ts-extend-props/properties.snapshot | 47 +++++++++++++++++++ .../react/react-properties.stories.tsx | 1 + 4 files changed, 108 insertions(+) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/docgen.snapshot create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/input.tsx create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/docgen.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/docgen.snapshot new file mode 100644 index 000000000000..01b9c02bc772 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/docgen.snapshot @@ -0,0 +1,43 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9764-ts-extend-props 1`] = ` +"import React from 'react'; + +const Radio = props => React.createElement(React.Fragment, null, JSON.stringify(props)); + +export const component = Radio; +Radio.__docgenInfo = { + \\"description\\": \\"\\", + \\"methods\\": [], + \\"displayName\\": \\"Radio\\", + \\"props\\": { + \\"value\\": { + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"union\\", + \\"raw\\": \\"string | number\\", + \\"elements\\": [{ + \\"name\\": \\"string\\" + }, { + \\"name\\": \\"number\\" + }] + }, + \\"description\\": \\"The input content value\\" + }, + \\"defaultChecked\\": { + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"boolean\\" + }, + \\"description\\": \\"\\" + }, + \\"checked\\": { + \\"required\\": false, + \\"tsType\\": { + \\"name\\": \\"boolean\\" + }, + \\"description\\": \\"\\" + } + } +};" +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/input.tsx new file mode 100644 index 000000000000..2abd61eed129 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/input.tsx @@ -0,0 +1,17 @@ +import React from 'react'; + +interface InputProps { + /** + * The input content value + */ + value?: string | number; +} + +interface RadioProps extends InputProps { + defaultChecked?: boolean; + checked?: boolean; +} + +const Radio: React.FC = (props: RadioProps) => <>{JSON.stringify(props)}; + +export const component = Radio; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/properties.snapshot new file mode 100644 index 000000000000..94f0778e84bd --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9764-ts-extend-props/properties.snapshot @@ -0,0 +1,47 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9764-ts-extend-props 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "0", + }, + "description": "The input content value", + "name": "value", + "required": false, + "type": Object { + "detail": undefined, + "summary": "union", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "1", + }, + "description": "", + "name": "defaultChecked", + "required": false, + "type": Object { + "detail": undefined, + "summary": "boolean", + }, + }, + Object { + "defaultValue": Object { + "detail": undefined, + "summary": "2", + }, + "description": "", + "name": "checked", + "required": false, + "type": Object { + "detail": undefined, + "summary": "boolean", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/react-properties.stories.tsx b/addons/docs/src/frameworks/react/react-properties.stories.tsx index 386c3b760896..f94a4627c2a5 100644 --- a/addons/docs/src/frameworks/react/react-properties.stories.tsx +++ b/addons/docs/src/frameworks/react/react-properties.stories.tsx @@ -27,6 +27,7 @@ const fixtures = [ '8894-9511-ts-forward-ref', '9465-ts-type-props', '8428-js-static-prop-types', + '9764-ts-extend-props', ]; const stories = storiesOf('Properties/React', module); From 5d942d1dfc0618d9aec4c3a973479d9b2eac5650 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 13:42:12 +0800 Subject: [PATCH 35/37] Props: Fix crash on 9399-js-proptypes-shape --- .../properties.snapshot | 18 ++++++++++++++++++ .../ts-function-component/input.tsx | 2 +- .../frameworks/react/propTypes/createType.ts | 4 ++-- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/properties.snapshot diff --git a/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/properties.snapshot b/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/properties.snapshot new file mode 100644 index 000000000000..193a0a5d8423 --- /dev/null +++ b/addons/docs/src/frameworks/react/__testfixtures__/9399-js-proptypes-shape/properties.snapshot @@ -0,0 +1,18 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`react component properties 9399-js-proptypes-shape 1`] = ` +Object { + "rows": Array [ + Object { + "defaultValue": null, + "description": "", + "name": "areas", + "required": true, + "type": Object { + "detail": "[object]", + "summary": "object[]", + }, + }, + ], +} +`; diff --git a/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx index 074c335f66b1..fdeea8fa6c8a 100644 --- a/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx +++ b/addons/docs/src/frameworks/react/__testfixtures__/ts-function-component/input.tsx @@ -1,4 +1,4 @@ -import React, { FC } from 'react'; +import React from 'react'; interface ButtonProps { /** diff --git a/addons/docs/src/frameworks/react/propTypes/createType.ts b/addons/docs/src/frameworks/react/propTypes/createType.ts index ce3cefc186d7..f75ea0edbe4f 100644 --- a/addons/docs/src/frameworks/react/propTypes/createType.ts +++ b/addons/docs/src/frameworks/react/propTypes/createType.ts @@ -209,8 +209,8 @@ function generateShape(type: DocgenPropType, extractedProp: ExtractedProp): Type return createTypeDef({ name: PropTypesType.SHAPE, short: OBJECT_CAPTION, - compact: depth === 1 ? prettyObject(ast, true) : null, - full: prettyObject(ast), + compact: depth === 1 && ast ? prettyObject(ast, true) : null, + full: ast ? prettyObject(ast) : null, }); } From 62de2a6f30b0dd1a60e261748ea542bb88b15839 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 14:20:09 +0800 Subject: [PATCH 36/37] Props: Fix test typings --- addons/docs/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/docs/tsconfig.json b/addons/docs/tsconfig.json index eac4a67bed71..793e61d30a1e 100644 --- a/addons/docs/tsconfig.json +++ b/addons/docs/tsconfig.json @@ -2,7 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "rootDir": "./src", - "types": ["webpack-env", "jest"] + "types": ["webpack-env", "jest", "node"] }, "include": ["src/**/*"], "exclude": ["src/**.test.ts"] From b64e3cf1bb9df875fc5ac7721b010447bd9b5389 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 15 Feb 2020 16:41:39 +0800 Subject: [PATCH 37/37] Addon-docs: Fix props tests --- addons/docs/package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/docs/package.json b/addons/docs/package.json index 8c824146e742..62a207980d8d 100644 --- a/addons/docs/package.json +++ b/addons/docs/package.json @@ -73,6 +73,8 @@ "vue-docgen-loader": "^1.4.0" }, "devDependencies": { + "@storybook/react": "6.0.0-alpha.11", + "@storybook/web-components": "6.0.0-alpha.11", "@types/doctrine": "^0.0.3", "@types/enzyme": "^3.10.3", "@types/jest": "^25.1.1",

It supports markdown, so you can embed formatted text, +like bold, italic, and inline code.