UNPKG

@berun/runner-mdx

Version:

BeRun runner for building MDX documentation applications

213 lines (200 loc) 6.32 kB
import presetReact from '@berun/preset-react' import { create as berunJs } from '@berun/berun' import presetMdx from '../src' test('Gets Webpack additional/updated rules configuration', () => { const berun = berunJs(presetReact).use(presetMdx) berun.webpack.toConfig() // run once to set babel, jest config etc. expect( berun.webpack.module.rule('main').oneOf('markdown').toConfig() ).toEqual({ test: /(\.(?:md|mdx))$/, include: ['/Volumes/DATA/projects/berun/packages/runner-mdx'], exclude: [/node_modules/], use: [ /* berun.webpack.module.rule('main').oneOf('markdown').use('babel') */ { loader: '/Volumes/DATA/projects/berun/node_modules/babel-loader/lib/index.js', options: { babelrc: false, cacheCompression: false, cacheDirectory: true, compact: false, highlightCode: true, presets: ['@berun/babel-preset-react-app'], sourceType: 'unambiguous' } }, /* berun.webpack.module.rule('main').oneOf('markdown').use('mdx') */ { loader: '/Volumes/DATA/projects/berun/node_modules/@mdx-js/loader/index.js', options: { remarkPlugins: expect.any(Array), rehypePlugins: expect.any(Array) } } ] }) }) test('Gets Webpack production module rules configuration', () => { process.env.NODE_ENV = 'production' const berun = berunJs(presetReact).use(presetMdx) berun.webpack.toConfig() // run once to set babel, jest config etc. expect( berun.webpack.module.rule('main').oneOf('markdown').toConfig() ).toEqual({ test: /(\.(?:md|mdx))$/, include: ['/Volumes/DATA/projects/berun/packages/runner-mdx'], exclude: [/node_modules/], use: [ /* berun.webpack.module.rule('main').oneOf('markdown').use('babel') */ { loader: '/Volumes/DATA/projects/berun/node_modules/babel-loader/lib/index.js', options: { babelrc: false, cacheDirectory: true, cacheCompression: true, compact: true, highlightCode: true, presets: ['@berun/babel-preset-react-app'], sourceType: 'unambiguous' } }, /* berun.webpack.module.rule('main').oneOf('markdown').use('mdx') */ { loader: '/Volumes/DATA/projects/berun/node_modules/@mdx-js/loader/index.js', options: { remarkPlugins: expect.any(Array), rehypePlugins: expect.any(Array) } } ] }) }) test('Gets Webpack module rules configuration', () => { process.env.NODE_ENV = 'development' const berun = berunJs(presetReact).use(presetMdx) berun.webpack.toConfig() // run once to set babel, jest config etc. expect(berun.webpack.module.rule('main').oneOf('image').toConfig()).toEqual({ test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], exclude: [/node_modules/], use: [ { loader: '/Volumes/DATA/projects/berun/node_modules/url-loader/dist/cjs.js', options: { limit: 10000, name: 'static/media/[name].[hash:8].[ext]' } } ] }) expect(berun.webpack.module.rule('main').oneOf('compile').toConfig()).toEqual( { test: /\.(js|jsx|ts|tsx)$/, include: ['/Volumes/DATA/projects/berun'], exclude: [/node_modules/], use: [ /* berun.webpack.module.rule('main').oneOf('compile').use('babel') */ { loader: '/Volumes/DATA/projects/berun/node_modules/babel-loader/lib/index.js', options: { babelrc: false, cacheCompression: false, cacheDirectory: true, compact: false, highlightCode: true, presets: ['@berun/babel-preset-react-app'], sourceType: 'unambiguous' } } ] } ) expect(berun.webpack.module.rule('main').oneOf('static').toConfig()).toEqual({ exclude: [ /\.(css|scss|sass|js|jsx|mjs|ts|tsx)$/, /\.ejs$/, /\.html$/, /\.json$/, /node_modules/, /\.(?:md|mdx)$/ ], use: [ /* berun.webpack.module.rule('main').oneOf('static').use('file') */ { loader: '/Volumes/DATA/projects/berun/node_modules/file-loader/dist/cjs.js', options: { name: 'static/media/[name].[hash:8].[ext]' } } ] }) }) test('Gets Webpack production module rules configuration', () => { process.env.NODE_ENV = 'production' const berun = berunJs(presetReact).use(presetMdx) berun.webpack.toConfig() // run once to set babel, jest config etc. expect(berun.webpack.module.rule('main').oneOf('image').toConfig()).toEqual({ test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], exclude: [/node_modules/], use: [ { loader: '/Volumes/DATA/projects/berun/node_modules/url-loader/dist/cjs.js', options: { limit: 10000, name: 'static/media/[name].[hash:8].[ext]' } } ] }) expect(berun.webpack.module.rule('main').oneOf('compile').toConfig()).toEqual( { test: /\.(js|jsx|ts|tsx)$/, include: ['/Volumes/DATA/projects/berun'], exclude: [/node_modules/], use: [ /* berun.webpack.module.rule('main').oneOf('compile').use('babel') */ { loader: '/Volumes/DATA/projects/berun/node_modules/babel-loader/lib/index.js', options: { babelrc: false, cacheDirectory: true, cacheCompression: true, compact: true, highlightCode: true, presets: ['@berun/babel-preset-react-app'], sourceType: 'unambiguous' } } ] } ) expect(berun.webpack.module.rule('main').oneOf('static').toConfig()).toEqual({ exclude: [ /\.(css|scss|sass|js|jsx|mjs|ts|tsx)$/, /\.ejs$/, /\.html$/, /\.json$/, /node_modules/, /\.(?:md|mdx)$/ ], use: [ /* berun.webpack.module.rule('main').oneOf('static').use('file') */ { loader: '/Volumes/DATA/projects/berun/node_modules/file-loader/dist/cjs.js', options: { name: 'static/media/[name].[hash:8].[ext]' } } ] }) })