diff --git a/.changeset/tall-roses-drum.md b/.changeset/tall-roses-drum.md new file mode 100644 index 000000000..311d2b355 --- /dev/null +++ b/.changeset/tall-roses-drum.md @@ -0,0 +1,5 @@ +--- +"modular-scripts": patch +--- + +Remove empty REAME.md files from packages and split tests for packages diff --git a/packages/modular-scripts/src/__tests__/__snapshots__/app.node-env.test.ts.snap b/packages/modular-scripts/src/__tests__/__snapshots__/app.node-env.test.ts.snap new file mode 100644 index 000000000..7c974d36b --- /dev/null +++ b/packages/modular-scripts/src/__tests__/__snapshots__/app.node-env.test.ts.snap @@ -0,0 +1,23 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`when working with a NODE_ENV app WHEN building with esbuild can generate a js/index-FG4XHKNZ.js 1`] = ` +"console.log(\\"production\\"); +//# sourceMappingURL=/static/js/index-FG4XHKNZ.js.map +" +`; + +exports[`when working with a NODE_ENV app WHEN building with webpack can generate a js/main.3db228f9.chunk.js 1`] = ` +"(this[\\"webpackJsonpnode-env-app\\"] = + this[\\"webpackJsonpnode-env-app\\"] || []).push([ + [0], + [ + function (n, o, p) { + \\"use strict\\"; + p.r(o), console.log(\\"production\\"); + }, + ], + [[0, 1]], +]); +//# sourceMappingURL=main.3db228f9.chunk.js.map +" +`; diff --git a/packages/modular-scripts/src/__tests__/__snapshots__/app.test.ts.snap b/packages/modular-scripts/src/__tests__/__snapshots__/app.test.ts.snap index 62936c7a2..72ea7fff4 100644 --- a/packages/modular-scripts/src/__tests__/__snapshots__/app.test.ts.snap +++ b/packages/modular-scripts/src/__tests__/__snapshots__/app.test.ts.snap @@ -8777,22 +8777,6 @@ exports[`When working with a nested app can generate a manifest 1`] = ` " `; -exports[`when working with a NODE_ENV app can generate a js/main.3db228f9.chunk.js 1`] = ` -"(this[\\"webpackJsonpnode-env-app\\"] = - this[\\"webpackJsonpnode-env-app\\"] || []).push([ - [0], - [ - function (n, o, p) { - \\"use strict\\"; - p.r(o), console.log(\\"production\\"); - }, - ], - [[0, 1]], -]); -//# sourceMappingURL=main.3db228f9.chunk.js.map -" -`; - exports[`when working with an app can generate a asset-manifest 1`] = ` "{ \\"files\\": { diff --git a/packages/modular-scripts/src/__tests__/app.node-env.test.ts b/packages/modular-scripts/src/__tests__/app.node-env.test.ts new file mode 100644 index 000000000..3c170d7ed --- /dev/null +++ b/packages/modular-scripts/src/__tests__/app.node-env.test.ts @@ -0,0 +1,157 @@ +import execa from 'execa'; +import rimraf from 'rimraf'; +import tree from 'tree-view-for-tests'; +import path from 'path'; +import fs from 'fs-extra'; +import prettier from 'prettier'; +import getModularRoot from '../utils/getModularRoot'; + +const modularRoot = getModularRoot(); + +// These tests must be executed sequentially with `--runInBand`. + +const packagesPath = path.join(getModularRoot(), 'packages'); + +function modular(str: string, opts: Record = {}) { + return execa('yarnpkg', ['modular', ...str.split(' ')], { + cwd: modularRoot, + cleanup: true, + ...opts, + }); +} + +function cleanup() { + rimraf.sync(path.join(packagesPath, 'node-env-app')); + rimraf.sync(path.join(modularRoot, 'dist/node-env-app')); + + // run yarn so yarn.lock gets reset + return execa.sync('yarnpkg', ['--silent'], { + cwd: modularRoot, + }); +} + +beforeAll(cleanup); +afterAll(cleanup); + +describe('when working with a NODE_ENV app', () => { + beforeAll(async () => { + await modular( + 'add node-env-app --unstable-type app --unstable-name node-env-app', + { stdio: 'inherit' }, + ); + + await fs.writeFile( + path.join(modularRoot, 'packages', 'node-env-app', 'src', 'index.ts'), + ` + console.log(process.env.NODE_ENV); + export {}; + `, + ); + }); + + describe('WHEN building with webpack', () => { + beforeAll(async () => { + rimraf.sync(path.join(modularRoot, 'dist/node-env-app')); + + await modular('build node-env-app', { + stdio: 'inherit', + }); + }); + + it('can build a app', () => { + expect(tree(path.join(modularRoot, 'dist', 'node-env-app'))) + .toMatchInlineSnapshot(` + "node-env-app + ├─ asset-manifest.json #n1rvuh + ├─ favicon.ico #6pu3rg + ├─ index.html #1yaenq4 + ├─ logo192.png #1nez7vk + ├─ logo512.png #1hwqvcc + ├─ manifest.json #19gah8o + ├─ package.json + ├─ robots.txt #1sjb8b3 + └─ static + └─ js + ├─ main.3db228f9.chunk.js #20y3tb + ├─ main.3db228f9.chunk.js.map #qfcqz7 + ├─ runtime-main.a0dc6a9b.js #o5bsr9 + └─ runtime-main.a0dc6a9b.js.map #10n4p35" + `); + }); + + it('can generate a js/main.3db228f9.chunk.js', async () => { + expect( + prettier.format( + String( + await fs.readFile( + path.join( + modularRoot, + 'dist', + 'node-env-app', + 'static', + 'js', + 'main.3db228f9.chunk.js', + ), + ), + ), + { + filepath: 'main.3db228f9.chunk.js', + }, + ), + ).toMatchSnapshot(); + }); + }); + + describe('WHEN building with esbuild', () => { + beforeAll(async () => { + rimraf.sync(path.join(modularRoot, 'dist/node-env-app')); + + await modular('build node-env-app', { + stdio: 'inherit', + env: { + USE_MODULAR_ESBUILD: 'true', + }, + }); + }); + + it('can build a app', () => { + expect(tree(path.join(modularRoot, 'dist', 'node-env-app'))) + .toMatchInlineSnapshot(` + "node-env-app + ├─ favicon.ico #6pu3rg + ├─ index.html #yth8pd + ├─ logo192.png #1nez7vk + ├─ logo512.png #1hwqvcc + ├─ manifest.json #19gah8o + ├─ package.json + ├─ robots.txt #1sjb8b3 + └─ static + └─ js + ├─ index-FG4XHKNZ.js #449tgl + └─ index-FG4XHKNZ.js.map #j51j3v" + `); + }); + + it('can generate a js/index-FG4XHKNZ.js', async () => { + expect( + prettier.format( + String( + await fs.readFile( + path.join( + modularRoot, + 'dist', + 'node-env-app', + 'static', + 'js', + 'index-FG4XHKNZ.js', + ), + ), + ), + { + filepath: 'index-FG4XHKNZ.js', + }, + ), + ).toMatchSnapshot(); + }); + }); +}); diff --git a/packages/modular-scripts/src/__tests__/app.test.ts b/packages/modular-scripts/src/__tests__/app.test.ts index cbfd9b241..f45a60105 100644 --- a/packages/modular-scripts/src/__tests__/app.test.ts +++ b/packages/modular-scripts/src/__tests__/app.test.ts @@ -41,9 +41,6 @@ function cleanup() { rimraf.sync(path.join(packagesPath, 'scoped/sample-app')); rimraf.sync(path.join(modularRoot, 'dist/scoped-sample-app')); - rimraf.sync(path.join(packagesPath, 'node-env-app')); - rimraf.sync(path.join(modularRoot, 'dist/node-env-app')); - // run yarn so yarn.lock gets reset return execa.sync('yarnpkg', ['--silent'], { cwd: modularRoot, @@ -53,71 +50,6 @@ function cleanup() { beforeAll(cleanup); afterAll(cleanup); -describe('when working with a NODE_ENV app', () => { - beforeAll(async () => { - await modular( - 'add node-env-app --unstable-type app --unstable-name node-env-app', - { stdio: 'inherit' }, - ); - - await fs.writeFile( - path.join(modularRoot, 'packages', 'node-env-app', 'src', 'index.ts'), - ` - console.log(process.env.NODE_ENV); - - export {}; - `, - ); - - await modular('build node-env-app', { - stdio: 'inherit', - }); - }); - - it('can build a app', () => { - expect(tree(path.join(modularRoot, 'dist', 'node-env-app'))) - .toMatchInlineSnapshot(` - "node-env-app - ├─ asset-manifest.json #n1rvuh - ├─ favicon.ico #6pu3rg - ├─ index.html #1yaenq4 - ├─ logo192.png #1nez7vk - ├─ logo512.png #1hwqvcc - ├─ manifest.json #19gah8o - ├─ package.json - ├─ robots.txt #1sjb8b3 - └─ static - └─ js - ├─ main.3db228f9.chunk.js #20y3tb - ├─ main.3db228f9.chunk.js.map #131rxqt - ├─ runtime-main.a0dc6a9b.js #o5bsr9 - └─ runtime-main.a0dc6a9b.js.map #10n4p35" - `); - }); - - it('can generate a js/main.3db228f9.chunk.js', async () => { - expect( - prettier.format( - String( - await fs.readFile( - path.join( - modularRoot, - 'dist', - 'node-env-app', - 'static', - 'js', - 'main.3db228f9.chunk.js', - ), - ), - ), - { - filepath: 'main.3db228f9.chunk.js', - }, - ), - ).toMatchSnapshot(); - }); -}); - describe('When working with a nested app', () => { beforeAll(async () => { await modular( diff --git a/packages/modular-scripts/src/__tests__/build.test.ts b/packages/modular-scripts/src/__tests__/build.test.ts index 5648ba7fd..0b2dcd945 100644 --- a/packages/modular-scripts/src/__tests__/build.test.ts +++ b/packages/modular-scripts/src/__tests__/build.test.ts @@ -29,10 +29,10 @@ describe('WHEN building with preserve modules', () => { Object { "dependencies": Object {}, "files": Array [ - "README.md", "dist-cjs", "dist-es", "dist-types", + "README.md", ], "license": "UNLICENSED", "main": "dist-cjs/index.js", @@ -48,7 +48,6 @@ describe('WHEN building with preserve modules', () => { expect(tree(path.join(modularRoot, 'dist', packageName))) .toMatchInlineSnapshot(` "sample-async-package - ├─ README.md #1jv3l2q ├─ dist-cjs │ ├─ index.js #y5z0kw │ ├─ index.js.map #1gofapj @@ -146,7 +145,6 @@ describe('WHEN building packages with private cross-package dependencies', () => expect(tree(path.join(modularRoot, 'dist', dependentPackage))) .toMatchInlineSnapshot(` "sample-depending-package - ├─ README.md #1jv3l2q ├─ dist-cjs │ ├─ index.js #1gj4b9h │ └─ index.js.map #1v4zj6b diff --git a/packages/modular-scripts/src/__tests__/convert.test.ts b/packages/modular-scripts/src/__tests__/convert.test.ts index aa4bb533e..fc7351c5c 100644 --- a/packages/modular-scripts/src/__tests__/convert.test.ts +++ b/packages/modular-scripts/src/__tests__/convert.test.ts @@ -6,6 +6,7 @@ import * as fs from 'fs-extra'; import { ModularPackageJson } from '../utils/isModularType'; import * as getModularRoot from '../utils/getModularRoot'; import { convert } from '../convert'; +import tree from 'tree-view-for-tests'; jest.mock('../utils/getModularRoot'); @@ -77,27 +78,31 @@ describe('Converting a react app to modular app', () => { }); it('should move the starting src folder into the modular app src folder', () => { - expect( - fs.readdirSync( - path.join(tmpFolderPath, 'packages', tmpProjectName, 'src'), - ), - ).toEqual( - fs.readdirSync( - path.join(__dirname, '..', '..', 'types', starterTempType, 'src'), - ), - ); + expect(tree(path.join(tmpFolderPath, 'packages', tmpProjectName, 'src'))) + .toMatchInlineSnapshot(` + "src + ├─ App.css #1o0zosm + ├─ App.tsx #c80ven + ├─ __tests__ + │ └─ App.test.tsx #16urcos + ├─ index.css #o7sk21 + ├─ index.tsx #zdn6mw + ├─ logo.svg #1okqmlj + └─ react-app-env.d.ts #t4ygcy" + `); }); it('should move the starting public folder into the modular app public folder', () => { - expect( - fs.readdirSync( - path.join(tmpFolderPath, 'packages', tmpProjectName, 'public'), - ), - ).toEqual( - fs.readdirSync( - path.join(__dirname, '..', '..', 'types', starterTempType, 'public'), - ), - ); + expect(tree(path.join(tmpFolderPath, 'packages', tmpProjectName, 'public'))) + .toMatchInlineSnapshot(` + "public + ├─ favicon.ico #6pu3rg + ├─ index.html #1m6toxd + ├─ logo192.png #1nez7vk + ├─ logo512.png #1hwqvcc + ├─ manifest.json #19gah8o + └─ robots.txt #1sjb8b3" + `); }); it('should update tsconfig.json', () => { diff --git a/packages/modular-scripts/src/__tests__/index.test.ts b/packages/modular-scripts/src/__tests__/index.test.ts index 8209f9a4e..6d8fba45a 100644 --- a/packages/modular-scripts/src/__tests__/index.test.ts +++ b/packages/modular-scripts/src/__tests__/index.test.ts @@ -100,7 +100,6 @@ describe('modular-scripts', () => { expect(tree(path.join(packagesPath, 'sample-view'))) .toMatchInlineSnapshot(` "sample-view - ├─ README.md #11adaka ├─ package.json └─ src ├─ __tests__ @@ -113,7 +112,6 @@ describe('modular-scripts', () => { expect(tree(path.join(packagesPath, 'sample-package'))) .toMatchInlineSnapshot(` "sample-package - ├─ README.md #1jv3l2q ├─ package.json └─ src ├─ __tests__ @@ -127,7 +125,6 @@ describe('modular-scripts', () => { expect(tree(path.join(packagesPath, 'nested/sample-nested-package'))) .toMatchInlineSnapshot(` "sample-nested-package - ├─ README.md #1jv3l2q ├─ package.json └─ src ├─ __tests__ @@ -214,10 +211,10 @@ describe('modular-scripts', () => { "react": "17.0.2", }, "files": Array [ - "README.md", "dist-cjs", "dist-es", "dist-types", + "README.md", ], "license": "UNLICENSED", "main": "dist-cjs/index.js", @@ -266,7 +263,6 @@ describe('modular-scripts', () => { expect(tree(path.join(modularRoot, 'dist', 'sample-view'))) .toMatchInlineSnapshot(` "sample-view - ├─ README.md #11adaka ├─ dist-cjs │ ├─ index.js #a7k6ic │ └─ index.js.map #1m4qim9 @@ -328,10 +324,10 @@ describe('modular-scripts', () => { Object { "dependencies": Object {}, "files": Array [ - "README.md", "dist-cjs", "dist-es", "dist-types", + "README.md", ], "license": "UNLICENSED", "main": "dist-cjs/index.js", @@ -347,7 +343,6 @@ describe('modular-scripts', () => { expect(tree(path.join(modularRoot, 'dist', 'sample-package'))) .toMatchInlineSnapshot(` "sample-package - ├─ README.md #1jv3l2q ├─ dist-cjs │ ├─ index.js #rq9uxe │ └─ index.js.map #19satcx @@ -398,10 +393,10 @@ describe('modular-scripts', () => { Object { "dependencies": Object {}, "files": Array [ - "README.md", "dist-cjs", "dist-es", "dist-types", + "README.md", ], "license": "UNLICENSED", "main": "dist-cjs/nested-sample-package.cjs.js", @@ -417,7 +412,6 @@ describe('modular-scripts', () => { expect(tree(path.join(modularRoot, 'dist', 'nested-sample-package'))) .toMatchInlineSnapshot(` "nested-sample-package - ├─ README.md #1jv3l2q ├─ dist-cjs │ ├─ nested-sample-package.cjs.js #kv2xzp │ └─ nested-sample-package.cjs.js.map #bgpzsg diff --git a/packages/modular-scripts/types/package/README.md b/packages/modular-scripts/types/package/README.md deleted file mode 100644 index 6a335aa3a..000000000 --- a/packages/modular-scripts/types/package/README.md +++ /dev/null @@ -1 +0,0 @@ -This is a regular package diff --git a/packages/modular-scripts/types/package/packagejson b/packages/modular-scripts/types/package/packagejson index fa2693d66..efac30132 100644 --- a/packages/modular-scripts/types/package/packagejson +++ b/packages/modular-scripts/types/package/packagejson @@ -2,8 +2,5 @@ "name": "PackageName__", "version": "1.0.0", "main": "src/index.ts", - "license": "UNLICENSED", - "files": [ - "README.md" - ] + "license": "UNLICENSED" } diff --git a/packages/modular-scripts/types/view/README.md b/packages/modular-scripts/types/view/README.md deleted file mode 100644 index e48565e74..000000000 --- a/packages/modular-scripts/types/view/README.md +++ /dev/null @@ -1 +0,0 @@ -This is a component diff --git a/packages/modular-scripts/types/view/packagejson b/packages/modular-scripts/types/view/packagejson index d739d95ff..cea29f084 100644 --- a/packages/modular-scripts/types/view/packagejson +++ b/packages/modular-scripts/types/view/packagejson @@ -5,8 +5,5 @@ "license": "UNLICENSED", "modular": { "type": "view" - }, - "files": [ - "README.md" - ] + } }