diff options
Diffstat (limited to 'storybook')
-rw-r--r-- | storybook/config/main.js | 3 | ||||
-rw-r--r-- | storybook/config/preview.js | 7 | ||||
-rw-r--r-- | storybook/config/webpack.config.js | 21 | ||||
-rw-r--r-- | storybook/package.json | 4 | ||||
-rw-r--r-- | storybook/yarn.lock | 17 |
5 files changed, 46 insertions, 6 deletions
diff --git a/storybook/config/main.js b/storybook/config/main.js index c1369aebd91..59aa9deb3b5 100644 --- a/storybook/config/main.js +++ b/storybook/config/main.js @@ -1,4 +1,3 @@ -/* eslint-disable import/no-commonjs */ const IS_EE = require('../../config/helpers/is_ee_env'); module.exports = { @@ -6,5 +5,5 @@ module.exports = { '../../app/assets/javascripts/**/*.stories.js', IS_EE && '../../ee/app/assets/javascripts/**/*.stories.js', ].filter(Boolean), - addons: ['@storybook/addon-essentials', '@storybook/addon-a11y'], + addons: ['@storybook/addon-essentials', '@storybook/addon-a11y', 'storybook-mirage'], }; diff --git a/storybook/config/preview.js b/storybook/config/preview.js index 4f496665de6..a55d0d52a0c 100644 --- a/storybook/config/preview.js +++ b/storybook/config/preview.js @@ -1,6 +1,7 @@ -// eslint-disable-next-line import/no-extraneous-dependencies +import { withServer } from 'storybook-mirage'; // eslint-disable-line import/no-unresolved import Vue from 'vue'; -import translateMixin from '../../app/assets/javascripts/vue_shared/translate'; +import { createMockServer } from 'test_helpers/mock_server'; +import translateMixin from '~/vue_shared/translate'; const stylesheetsRequireCtx = require.context( '../../app/assets/stylesheets', @@ -13,3 +14,5 @@ translateMixin(Vue); stylesheetsRequireCtx('./application.scss'); stylesheetsRequireCtx('./application_utilities.scss'); + +export const decorators = [withServer(createMockServer)]; diff --git a/storybook/config/webpack.config.js b/storybook/config/webpack.config.js index 4382ba43f21..9d630dca970 100644 --- a/storybook/config/webpack.config.js +++ b/storybook/config/webpack.config.js @@ -5,6 +5,7 @@ const path = require('path'); const sass = require('node-sass'); // eslint-disable-line import/no-unresolved const { buildIncludePaths, resolveGlobUrl } = require('node-sass-magic-importer/dist/toolbox'); // eslint-disable-line import/no-unresolved const webpack = require('webpack'); +const IS_EE = require('../../config/helpers/is_ee_env'); const IS_JH = require('../../config/helpers/is_jh_env'); const gitlabWebpackConfig = require('../../config/webpack.config'); @@ -98,13 +99,31 @@ module.exports = function storybookWebpackConfig({ config }) { }, ], }, + { + test: /\.(graphql|gql)$/, + exclude: /node_modules/, + loader: 'graphql-tag/loader', + }, + { + test: /\.(zip)$/, + loader: 'file-loader', + options: { + esModule: false, + }, + }, ]; // Silence webpack warnings about moment/pikaday not being able to resolve. config.plugins.push(new webpack.IgnorePlugin(/moment/, /pikaday/)); + const baseIntegrationTestHelpersPath = 'spec/frontend_integration/test_helpers'; + // Add any missing aliases from the main GitLab webpack config - Object.assign(config.resolve.alias, gitlabWebpackConfig.resolve.alias); + Object.assign(config.resolve.alias, gitlabWebpackConfig.resolve.alias, { + test_helpers: path.resolve(ROOT, baseIntegrationTestHelpersPath), + ee_else_ce_test_helpers: path.resolve(ROOT, IS_EE ? 'ee' : '', baseIntegrationTestHelpersPath), + test_fixtures: path.resolve(ROOT, 'tmp/tests/frontend', IS_EE ? 'fixtures-ee' : 'fixtures'), + }); // The main GitLab project aliases this `icons.svg` file to app/assets/javascripts/lib/utils/icons_path.js, // which depends on the existence of a global `gon` variable. // By deleting the alias, imports of this path will resolve as expected. diff --git a/storybook/package.json b/storybook/package.json index 4b922a4776c..48083ed1ce3 100644 --- a/storybook/package.json +++ b/storybook/package.json @@ -14,9 +14,11 @@ "@storybook/addon-controls": "^6.2.9", "@storybook/addon-essentials": "^6.2.9", "@storybook/vue": "6.2.9", + "graphql-tag": "^2.12.5", "node-sass": "^4.14.1", "node-sass-magic-importer": "^5.3.2", "postcss-loader": "3.0.0", - "sass-loader": "^7.1.0" + "sass-loader": "^7.1.0", + "storybook-mirage": "^0.0.4" } } diff --git a/storybook/yarn.lock b/storybook/yarn.lock index de00d3bcfc2..d63618ebc65 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -5388,6 +5388,13 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graphql-tag@^2.12.5: + version "2.12.5" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.5.tgz#5cff974a67b417747d05c8d9f5f3cb4495d0db8f" + integrity sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ== + dependencies: + tslib "^2.1.0" + gud@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" @@ -9546,6 +9553,11 @@ store2@^2.12.0: resolved "https://registry.yarnpkg.com/store2/-/store2-2.12.0.tgz#e1f1b7e1a59b6083b2596a8d067f6ee88fd4d3cf" integrity sha512-7t+/wpKLanLzSnQPX8WAcuLCCeuSHoWdQuh9SB3xD0kNOM38DNf+0Oa+wmvxmYueRzkmh6IcdKFtvTa+ecgPDw== +storybook-mirage@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/storybook-mirage/-/storybook-mirage-0.0.4.tgz#572e5d310ad8f0dd963e5c341aa2402f8ed07749" + integrity sha512-oGjsxyxmedXQtsVW1DDwKM1RocAD5zClFeOFtAhK46NcGXLJ31m2WQg5kL7YqrsriorrCZq4vvSy05DVCD7BKQ== + stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -10057,6 +10069,11 @@ tslib@^2.0.1, tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== +tslib@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" |