From feaae4ba58f52a382a68bb91b007ee47f3daeebe Mon Sep 17 00:00:00 2001 From: Oleksandr Fediashov Date: Wed, 24 Nov 2021 14:25:45 +0100 Subject: [PATCH 1/5] chore: migrate @fluentui/react-tabster --- packages/react-tabster/.babelrc.json | 2 +- packages/react-tabster/.npmignore | 1 - packages/react-tabster/.storybook/main.js | 6 ++-- packages/react-tabster/.storybook/preview.js | 4 +++ .../react-tabster/.storybook/tsconfig.json | 7 ++-- .../config/api-extractor.local.json | 2 +- packages/react-tabster/config/tests.js | 1 + packages/react-tabster/e2e/tsconfig.json | 6 ++-- packages/react-tabster/jest.config.js | 4 ++- packages/react-tabster/package.json | 11 ++++--- packages/react-tabster/tsconfig.json | 32 ++++++++++++------- packages/react-tabster/tsconfig.lib.json | 12 +++++++ packages/react-tabster/tsconfig.spec.json | 9 ++++++ 13 files changed, 70 insertions(+), 27 deletions(-) create mode 100644 packages/react-tabster/config/tests.js create mode 100644 packages/react-tabster/tsconfig.lib.json create mode 100644 packages/react-tabster/tsconfig.spec.json diff --git a/packages/react-tabster/.babelrc.json b/packages/react-tabster/.babelrc.json index 38bf1f7a945cf8..b51a5457ced106 100644 --- a/packages/react-tabster/.babelrc.json +++ b/packages/react-tabster/.babelrc.json @@ -1,3 +1,3 @@ { - "plugins": ["annotate-pure-calls", "@babel/transform-react-pure-annotations"] + "plugins": ["module:@fluentui/babel-make-styles", "annotate-pure-calls", "@babel/transform-react-pure-annotations"] } diff --git a/packages/react-tabster/.npmignore b/packages/react-tabster/.npmignore index fa2d3a7f5111ca..e719afb921bc93 100644 --- a/packages/react-tabster/.npmignore +++ b/packages/react-tabster/.npmignore @@ -1,4 +1,3 @@ -.cache/ .storybook/ .vscode/ bundle-size/ diff --git a/packages/react-tabster/.storybook/main.js b/packages/react-tabster/.storybook/main.js index ec377d98606fa9..18a60b265c2cfb 100644 --- a/packages/react-tabster/.storybook/main.js +++ b/packages/react-tabster/.storybook/main.js @@ -1,12 +1,14 @@ const rootMain = require('../../../.storybook/main'); -module.exports = /** @type {Pick} */ ({ +module.exports = /** @type {Omit} */ ({ + ...rootMain, stories: [...rootMain.stories, '../src/**/*.stories.mdx', '../src/**/*.stories.@(ts|tsx)'], addons: [...rootMain.addons], webpackFinal: (config, options) => { const localConfig = { ...rootMain.webpackFinal(config, options) }; + // add your own webpack tweaks if needed + return localConfig; }, - previewHead: rootMain.previewHead, }); diff --git a/packages/react-tabster/.storybook/preview.js b/packages/react-tabster/.storybook/preview.js index b52409294c3304..10fd98d02c9454 100644 --- a/packages/react-tabster/.storybook/preview.js +++ b/packages/react-tabster/.storybook/preview.js @@ -1,3 +1,7 @@ import * as rootPreview from '../../../.storybook/preview'; +/** @type {typeof rootPreview.decorators} */ export const decorators = [...rootPreview.decorators]; + +/** @type {typeof rootPreview.parameters} */ +export const parameters = { ...rootPreview.parameters }; diff --git a/packages/react-tabster/.storybook/tsconfig.json b/packages/react-tabster/.storybook/tsconfig.json index 3bd9adcd2ee05e..29aa16f2f178f3 100644 --- a/packages/react-tabster/.storybook/tsconfig.json +++ b/packages/react-tabster/.storybook/tsconfig.json @@ -1,9 +1,10 @@ { "extends": "../tsconfig.json", "compilerOptions": { + "outDir": "", "allowJs": true, - "checkJs": true + "checkJs": true, + "types": ["static-assets", "environment", "inline-style-expand-shorthand", "storybook__addons"] }, - "exclude": ["../**/*.test.ts", "../**/*.test.js", "../**/*.test.tsx", "../**/*.test.jsx"], - "include": ["../src/**/*", "*.js"] + "include": ["../src/**/*.stories.ts", "../src/**/*.stories.tsx", "*.js"] } diff --git a/packages/react-tabster/config/api-extractor.local.json b/packages/react-tabster/config/api-extractor.local.json index c2ea401c1c3685..7974a129e8a337 100644 --- a/packages/react-tabster/config/api-extractor.local.json +++ b/packages/react-tabster/config/api-extractor.local.json @@ -1,5 +1,5 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", "extends": "./api-extractor.json", - "mainEntryPointFilePath": "/dist//src/index.d.ts" + "mainEntryPointFilePath": "/dist/packages//src/index.d.ts" } diff --git a/packages/react-tabster/config/tests.js b/packages/react-tabster/config/tests.js new file mode 100644 index 00000000000000..2e211ae9e21420 --- /dev/null +++ b/packages/react-tabster/config/tests.js @@ -0,0 +1 @@ +/** Jest test setup file. */ diff --git a/packages/react-tabster/e2e/tsconfig.json b/packages/react-tabster/e2e/tsconfig.json index b351dbdc81f483..030562e1b71cac 100644 --- a/packages/react-tabster/e2e/tsconfig.json +++ b/packages/react-tabster/e2e/tsconfig.json @@ -1,8 +1,8 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "types": ["cypress", "cypress-real-events", "cypress-storybook/cypress"], - "lib": ["es2015", "dom"] + "types": ["node", "cypress", "cypress-storybook/cypress", "cypress-real-events"], + "lib": ["ES2019", "dom"] }, - "include": ["."] + "include": ["**/*.ts"] } diff --git a/packages/react-tabster/jest.config.js b/packages/react-tabster/jest.config.js index eb995a42c65b9f..a7c27cc1863211 100644 --- a/packages/react-tabster/jest.config.js +++ b/packages/react-tabster/jest.config.js @@ -8,7 +8,7 @@ module.exports = { preset: '../../jest.preset.js', globals: { 'ts-jest': { - tsConfig: '/tsconfig.json', + tsConfig: '/tsconfig.spec.json', diagnostics: false, }, }, @@ -16,4 +16,6 @@ module.exports = { '^.+\\.tsx?$': 'ts-jest', }, coverageDirectory: './coverage', + setupFilesAfterEnv: ['./config/tests.js'], + snapshotSerializers: ['@fluentui/jest-serializer-make-styles'], }; diff --git a/packages/react-tabster/package.json b/packages/react-tabster/package.json index 03c964a160c3a5..7794dba4b98070 100644 --- a/packages/react-tabster/package.json +++ b/packages/react-tabster/package.json @@ -18,10 +18,12 @@ "just": "just-scripts", "lint": "just-scripts lint", "storybook": "start-storybook", - "test": "jest --passWithNoTests", + "test": "jest", "docs": "api-extractor run --config=config/api-extractor.local.json --local", - "build:local": "tsc -p . --module esnext --emitDeclarationOnly && node ../../scripts/typescript/normalize-import --output dist/react-tabster/src && yarn docs", - "start": "yarn storybook" + "build:local": "tsc -p ./tsconfig.lib.json --module esnext --emitDeclarationOnly && node ../../scripts/typescript/normalize-import --output ./dist/packages/react-tabster/src && yarn docs", + "start": "yarn storybook", + "type-check": "tsc -b tsconfig.json", + "e2e": "e2e" }, "devDependencies": { "@fluentui/eslint-plugin": "*", @@ -31,7 +33,8 @@ "@types/react-test-renderer": "^16.0.0", "react": "16.8.6", "react-dom": "16.8.6", - "react-test-renderer": "^16.3.0" + "react-test-renderer": "^16.3.0", + "@fluentui/babel-make-styles": "9.0.0-beta.3" }, "dependencies": { "@fluentui/make-styles": "9.0.0-beta.2", diff --git a/packages/react-tabster/tsconfig.json b/packages/react-tabster/tsconfig.json index d0ba217d5e49b1..72dd4ab8a9de44 100644 --- a/packages/react-tabster/tsconfig.json +++ b/packages/react-tabster/tsconfig.json @@ -1,18 +1,28 @@ { "extends": "../../tsconfig.base.json", - "include": ["src"], "compilerOptions": { "target": "ES2019", - "module": "CommonJS", - "lib": ["ES2019", "DOM"], - "outDir": "dist", - "jsx": "react", - "declaration": true, - "experimentalDecorators": true, + "noEmit": true, + "isolatedModules": true, "importHelpers": true, + "jsx": "react", "noUnusedLocals": true, - "preserveConstEnums": true, - "types": ["jest", "custom-global", "inline-style-expand-shorthand"], - "isolatedModules": true - } + "preserveConstEnums": true + }, + "include": [], + "files": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + }, + { + "path": "./.storybook/tsconfig.json" + }, + { + "path": "./e2e/tsconfig.json" + } + ] } diff --git a/packages/react-tabster/tsconfig.lib.json b/packages/react-tabster/tsconfig.lib.json new file mode 100644 index 00000000000000..51f5726b71c686 --- /dev/null +++ b/packages/react-tabster/tsconfig.lib.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "lib": ["ES2019", "dom"], + "outDir": "dist", + "declaration": true, + "types": ["static-assets", "environment", "inline-style-expand-shorthand"] + }, + "exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.test.ts", "**/*.test.tsx", "**/*.stories.ts", "**/*.stories.tsx"], + "include": ["./src/**/*.ts", "./src/**/*.tsx"] +} diff --git a/packages/react-tabster/tsconfig.spec.json b/packages/react-tabster/tsconfig.spec.json new file mode 100644 index 00000000000000..28fa5226de4204 --- /dev/null +++ b/packages/react-tabster/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "CommonJS", + "outDir": "dist", + "types": ["jest", "node", "inline-style-expand-shorthand"] + }, + "include": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.test.ts", "**/*.test.tsx", "**/*.d.ts"] +} From 9a9122b3f4242993521cef96eb8f54be1d321b08 Mon Sep 17 00:00:00 2001 From: Oleksandr Fediashov Date: Wed, 24 Nov 2021 14:26:15 +0100 Subject: [PATCH 2/5] Change files --- ...react-tabster-48b79843-9d37-473a-9867-25b6de014363.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@fluentui-react-tabster-48b79843-9d37-473a-9867-25b6de014363.json diff --git a/change/@fluentui-react-tabster-48b79843-9d37-473a-9867-25b6de014363.json b/change/@fluentui-react-tabster-48b79843-9d37-473a-9867-25b6de014363.json new file mode 100644 index 00000000000000..7d17eaea9a6b97 --- /dev/null +++ b/change/@fluentui-react-tabster-48b79843-9d37-473a-9867-25b6de014363.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "update tooling configs", + "packageName": "@fluentui/react-tabster", + "email": "olfedias@microsoft.com", + "dependentChangeType": "none" +} From 58e15149e1104923e04909699ea7b1d92613feb3 Mon Sep 17 00:00:00 2001 From: Oleksandr Fediashov Date: Wed, 24 Nov 2021 15:29:13 +0100 Subject: [PATCH 3/5] restore --passWithNoTests --- packages/react-tabster/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-tabster/package.json b/packages/react-tabster/package.json index 7794dba4b98070..fc47db97a3326f 100644 --- a/packages/react-tabster/package.json +++ b/packages/react-tabster/package.json @@ -18,7 +18,7 @@ "just": "just-scripts", "lint": "just-scripts lint", "storybook": "start-storybook", - "test": "jest", + "test": "jest --passWithNoTests", "docs": "api-extractor run --config=config/api-extractor.local.json --local", "build:local": "tsc -p ./tsconfig.lib.json --module esnext --emitDeclarationOnly && node ../../scripts/typescript/normalize-import --output ./dist/packages/react-tabster/src && yarn docs", "start": "yarn storybook", From 7b4e4dd2b5c81d70de8fe051c5eaf646d58c1a4e Mon Sep 17 00:00:00 2001 From: Lingfan Gao Date: Wed, 24 Nov 2021 16:36:26 +0100 Subject: [PATCH 4/5] fix keyborg test name --- packages/react-tabster/e2e/useKeyborg.e2e.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-tabster/e2e/useKeyborg.e2e.ts b/packages/react-tabster/e2e/useKeyborg.e2e.ts index b8bfe373f4b05e..c107f4b158696f 100644 --- a/packages/react-tabster/e2e/useKeyborg.e2e.ts +++ b/packages/react-tabster/e2e/useKeyborg.e2e.ts @@ -5,7 +5,7 @@ describe('Keyborg', () => { cy.visitStorybook(); }); - beforeEach(() => cy.loadStory('tabster', 'Keyborg')); + beforeEach(() => cy.loadStory('Components/tabster', 'Keyborg')); it('should open when clicked', () => { cy.contains('Start').focus().realPress('Tab'); From 5fb25da5f7044ec91dab083a6bc3fe08fb749d7b Mon Sep 17 00:00:00 2001 From: Lingfan Gao Date: Thu, 25 Nov 2021 08:44:14 +0100 Subject: [PATCH 5/5] disable e2e tests for react-tabster --- packages/react-tabster/package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-tabster/package.json b/packages/react-tabster/package.json index fc47db97a3326f..b1235545f2de65 100644 --- a/packages/react-tabster/package.json +++ b/packages/react-tabster/package.json @@ -22,8 +22,7 @@ "docs": "api-extractor run --config=config/api-extractor.local.json --local", "build:local": "tsc -p ./tsconfig.lib.json --module esnext --emitDeclarationOnly && node ../../scripts/typescript/normalize-import --output ./dist/packages/react-tabster/src && yarn docs", "start": "yarn storybook", - "type-check": "tsc -b tsconfig.json", - "e2e": "e2e" + "type-check": "tsc -b tsconfig.json" }, "devDependencies": { "@fluentui/eslint-plugin": "*",