Skip to content

Commit

Permalink
Test feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
drwpow committed Dec 8, 2020
1 parent a5d7608 commit 0671b80
Show file tree
Hide file tree
Showing 30 changed files with 111 additions and 100 deletions.
2 changes: 1 addition & 1 deletion test/build/base-url-homepage/base-url-homepage.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ describe('packageManifest.homepage', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['index.html'], {cwd});
files = readFiles(cwd);
});

it('baseUrl works for <link>', () => {
Expand Down
7 changes: 3 additions & 4 deletions test/build/base-url-remote/base-url-remote.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,23 @@ const {setupBuildTest, readFiles} = require('../../test-utils');
const cwd = path.join(__dirname, 'build');

let files = {};
let $;

describe('buildOptions.baseUrl', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['index.html'], {cwd});
$ = cheerio.load(files['/index.html']);
files = readFiles(cwd);
});

it('baseUrl works for <link>', () => {
const $ = cheerio.load(files['/index.html']);
expect($('link[rel="icon"]').attr('href').startsWith('https://www.example.com/')).toBe(true);
expect($('link[rel="stylesheet"]').attr('href').startsWith('https://www.example.com/')).toBe(
true,
);
});

it('baseUrl works for <script>', () => {
const $ = cheerio.load(files['/index.html']);
expect($('script').attr('src').startsWith('https://www.example.com/')).toBe(true);
});
});
6 changes: 3 additions & 3 deletions test/build/base-url/base-url.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@ const {setupBuildTest, readFiles} = require('../../test-utils');
const cwd = path.join(__dirname, 'build');

let files = {};
let $;

describe('buildOptions.baseUrl', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['index.html', 'index.js', '_dist_/index.js'], {cwd});
$ = cheerio.load(files['/index.html']);
files = readFiles(cwd);
});

it('baseUrl works for <link>', () => {
const $ = cheerio.load(files['/index.html']);
expect($('link[rel="icon"]').attr('href').startsWith('/static/')).toBe(true);
expect($('link[rel="stylesheet"]').attr('href').startsWith('/static/')).toBe(true);
});

it('baseUrl works for <script>', () => {
const $ = cheerio.load(files['/index.html']);
expect($('script').attr('src').startsWith('/static/')).toBe(true);
});

Expand Down
6 changes: 3 additions & 3 deletions test/build/bugfix-named-import/bugfix-named-import.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ describe('bugfix: named import', () => {

// if this file built successfully, then the ipmort worked
it('built', () => {
const webModule = path.join(__dirname, 'build', 'web_modules', 'array-flatten.js');
const webModuleLoc = path.join(__dirname, 'build', 'web_modules', 'array-flatten.js');

expect(fs.existsSync(webModule)).toBe(true);
expect(fs.readFileSync(webModule, 'utf-8')).toBeTruthy();
expect(fs.existsSync(webModuleLoc)).toBe(true);
expect(fs.readFileSync(webModuleLoc, 'utf8')).toBeTruthy();
});
});
2 changes: 1 addition & 1 deletion test/build/cdn/cdn.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ describe('CDN URLs', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['index.html', '_dist_/index.js'], {cwd});
files = readFiles(cwd);
});

it('HTML: preserves remote URLs', () => {
Expand Down
4 changes: 1 addition & 3 deletions test/build/config-alias/config-alias.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ describe('config: alias', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['_dist_/index.js', '_dist_/index.html', '_dist_/components/style.css'], {
cwd,
});
files = readFiles(cwd);
});

it('web_modules can be aliased', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ describe('config: extends', () => {
});

it('loads the appropriate plugins', () => {
const snowpackEnv = fs.readFileSync(path.join(cwd, '__snowpack__', 'env.js'), 'utf-8');
const snowpackEnv = fs.readFileSync(path.join(cwd, '__snowpack__', 'env.js'), 'utf8');
expect(snowpackEnv).toEqual(
expect.stringContaining(`"SNOWPACK_PUBLIC_SECRET_VALUE":"pumpernickel"`),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ describe('config: installOptions.externalPackage', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['_dist_/index.js'], {cwd});
files = readFiles(cwd);
});

it('preserves external package', () => {
Expand Down
8 changes: 4 additions & 4 deletions test/build/config-meta-dir/config-meta-dir.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ describe('config: buildOptions.metaDir', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['index.js', 'sub/index.js'], {cwd});
files = readFiles(cwd);
});

it('builds snowpack env', () => {
const envFile = path.join(cwd, 'static', 'snowpack', 'env.js');
expect(fs.existsSync(envFile)).toBe(true); // file exists
expect(fs.readFileSync(envFile, 'utf-8')).toBeTruthy(); // file has contents
const envFileLoc = path.join(cwd, 'static', 'snowpack', 'env.js');
expect(fs.existsSync(envFileLoc)).toBe(true); // file exists
expect(fs.readFileSync(envFileLoc, 'utf8')).toBeTruthy(); // file has contents
});

it('resolves snowpack env', () => {
Expand Down
4 changes: 2 additions & 2 deletions test/build/config-mount/config-mount.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function generateContentsMap(dir) {
const allFiles = glob.sync(dir + '**/*', {nodir: true});
allFiles.sort((a, b) => a.localeCompare(b, {numeric: true}));
allFiles.forEach((file) => {
contentMap[path.relative(dir, file)] = fs.readFileSync(file, 'utf-8');
contentMap[path.relative(dir, file)] = fs.readFileSync(file, 'utf8');
});
return contentMap;
}
Expand All @@ -21,7 +21,7 @@ describe('config: mount', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['h/main.html', 'i/index.js', 'new-g/index.js', 'new-g/main.html'], {cwd});
files = readFiles(cwd);
});

describe('basic', () => {
Expand Down
8 changes: 4 additions & 4 deletions test/build/config-out-flag/config-out-flag.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ describe('CLI: --out flag', () => {
});

it('respects --out', () => {
const distJS = path.join(cwd, 'src', 'index.js');
expect(fs.existsSync(distJS)).toBe(true);
const distJSLoc = path.join(cwd, 'src', 'index.js');
expect(fs.existsSync(distJSLoc)).toBe(true); // JS file exists

const snowpackMeta = path.join(cwd, '__snowpack__', 'env.js');
expect(fs.existsSync(snowpackMeta)).toBe(true);
const snowpackMetaLoc = path.join(cwd, '__snowpack__', 'env.js');
expect(fs.existsSync(snowpackMetaLoc)).toBe(true); // snowpack meta exists
});
});
8 changes: 4 additions & 4 deletions test/build/config-out/config-out.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ describe('config: buildOptions.out', () => {
});

it('respects buildOptions.out', () => {
const distJS = path.join(cwd, 'src', 'index.js');
expect(fs.existsSync(distJS)).toBe(true);
const distJSLoc = path.join(cwd, 'src', 'index.js');
expect(fs.existsSync(distJSLoc)).toBe(true); // JS file exists

const snowpackMeta = path.join(cwd, '__snowpack__', 'env.js');
expect(fs.existsSync(snowpackMeta)).toBe(true);
const snowpackMetaLoc = path.join(cwd, '__snowpack__', 'env.js');
expect(fs.existsSync(snowpackMetaLoc)).toBe(true); // snowpack meta exists
});
});
12 changes: 6 additions & 6 deletions test/build/config-treeshake/config-treeshake.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@ describe('installOptions.treeshake', () => {
});

it('built web_modules/array-flatten.js', () => {
const webModule = path.join(cwd, 'web_modules', 'array-flatten.js');
const webModuleLoc = path.join(cwd, 'web_modules', 'array-flatten.js');

expect(fs.existsSync(webModule)).toBe(true); // file exists
expect(fs.readFileSync(webModule, 'utf-8')).toBeTruthy(); // file has contents
expect(fs.existsSync(webModuleLoc)).toBe(true); // file exists
expect(fs.readFileSync(webModuleLoc, 'utf8')).toBeTruthy(); // file has contents
});

it('built web_modules/async.js', () => {
const webModule = path.join(cwd, 'web_modules', 'async.js');
const webModuleLoc = path.join(cwd, 'web_modules', 'async.js');

expect(fs.existsSync(webModule)).toBe(true); // file exists
expect(fs.readFileSync(webModule, 'utf-8')).toBeTruthy(); // file has contents
expect(fs.existsSync(webModuleLoc)).toBe(true); // file exists
expect(fs.readFileSync(webModuleLoc, 'utf8')).toBeTruthy(); // file has contents
});
});
4 changes: 2 additions & 2 deletions test/build/config-ts-file/config-ts-file.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ describe('config: TypeScript config', () => {
});

it('mounts & builds correctly', () => {
const webModule = path.join(cwd, '_dist_', 'index.js');
const webModuleLoc = path.join(cwd, '_dist_', 'index.js');

expect(fs.existsSync(webModule)).toBe(true);
expect(fs.existsSync(webModuleLoc)).toBe(true);
});
});
2 changes: 1 addition & 1 deletion test/build/css-modules/css-modules.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ describe('', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['src/App.module.css', 'src/App.module.css.proxy.js'], {cwd});
files = readFiles(cwd);
});

it('builds css.proxy.js file', () => {
Expand Down
2 changes: 1 addition & 1 deletion test/build/custom-modules-dir/custom-modules-dir.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ describe('buildOptions.webModulesUrl', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['_dist_/index.js'], {cwd});
files = readFiles(cwd);
});

it('snowpack: installs in specified directory', () => {
Expand Down
2 changes: 1 addition & 1 deletion test/build/entrypoint-ids/entrypoint-ids.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ describe('core: web_modules resolution', () => {
const capitalize = os.platform() === 'win32'; // for Windows, we capitalize this one directory to see if Snowpack can still resolve
setupBuildTest(capitalize ? __dirname.toUpperCase() : __dirname);

files = readFiles(['_dist_/index.js'], {cwd});
files = readFiles(cwd);
});

it('resolves web_modules without case-sensitivity', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ describe('html-environment-variables', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['index.html'], {cwd});
files = readFiles(cwd);
});

it('passes env vars into HTML', () => {
Expand Down
4 changes: 1 addition & 3 deletions test/build/import-assets/import-assets.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ let files = {};
describe('import resource', () => {
beforeAll(() => {
setupBuildTest(__dirname);
files = readFiles(['_dist_/index.js', '_dist_/styles.css', '_dist_/styles.css.proxy.js'], {
cwd,
});
files = readFiles(cwd);
});

describe('css', () => {
Expand Down
21 changes: 6 additions & 15 deletions test/build/import-json/import-json.test.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,29 @@
const path = require('path');
const {setupBuildTest, readFiles} = require('../../test-utils');
const {setupBuildTest, readFiles, stripWS} = require('../../test-utils');

const STRIP_WHITESPACE = /((\s+$)|((\\r\\n)|(\\n)))/gm;
const cwd = path.join(__dirname, 'build');
let files = {};

describe('import-json', () => {
beforeAll(() => {
setupBuildTest(__dirname);
files = readFiles(
[
'_dist_/index.js',
'_dist_/file.json.proxy.js',
'web_modules/json-test-pkg/file.json.proxy.js',
],
{
cwd,
},
);
files = readFiles(cwd);
});

it('imports in source file are transformed correctly', () => {
expect(files['/_dist_/index.js'].replace(STRIP_WHITESPACE, '')).toEqual(`import testJsonData from './file.json.proxy.js';
expect(stripWS(files['/_dist_/index.js']))
.toEqual(`import testJsonData from './file.json.proxy.js';
import testJsonPkgData from '../web_modules/json-test-pkg/file.json.proxy.js';
console.log('loaded:', testJsonData, testJsonPkgData);`);
});

it('local json file is built as expected', () => {
expect(files['/_dist_/file.json.proxy.js'].replace(STRIP_WHITESPACE, '')).toEqual(`let json = {"test":true};
expect(stripWS(files['/_dist_/file.json.proxy.js'])).toEqual(`let json = {"test":true};
export default json;`);
});

it('npm package json file is imported as expected', () => {
expect(files['/web_modules/json-test-pkg/file.json.proxy.js'].replace(STRIP_WHITESPACE, ''))
expect(stripWS(files['/web_modules/json-test-pkg/file.json.proxy.js']))
.toEqual(`let json = {"test-json-pkg":true};
export default json;`);
});
Expand Down
12 changes: 6 additions & 6 deletions test/build/legacy-mount-scripts/legacy-mount.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ describe('config: mount scripts (legacy)', () => {
});

it('mounted ./src', () => {
const js = path.join(cwd, '_dist_', 'index.js');
expect(fs.existsSync(js)).toBe(true); // file exists
expect(fs.readFileSync(js, 'utf-8')).toBeTruthy(); // file has content
const jsLoc = path.join(cwd, '_dist_', 'index.js');
expect(fs.existsSync(jsLoc)).toBe(true); // file exists
expect(fs.readFileSync(jsLoc, 'utf8')).toBeTruthy(); // file has content
});

it('mounted ./public', () => {
const html = path.join(cwd, 'index.html');
expect(fs.existsSync(html)).toBe(true); // file exists
expect(fs.readFileSync(html, 'utf-8')).toBeTruthy(); // file has content
const htmlLoc = path.join(cwd, 'index.html');
expect(fs.existsSync(htmlLoc)).toBe(true); // file exists
expect(fs.readFileSync(htmlLoc, 'utf8')).toBeTruthy(); // file has content
});
});
5 changes: 1 addition & 4 deletions test/build/module-resolution/module-resolution.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ describe('module resolution', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(
['src.js', 'index.html', 'folder-1/index.html', 'folder-1/folder-2/index.html'],
{cwd},
);
files = readFiles(cwd);
});

it('JS: resolves web_modules relatively', () => {
Expand Down
2 changes: 1 addition & 1 deletion test/build/package-bootstrap/package-bootstrap.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ describe('package: bootstrap', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['_dist_/index.js'], {cwd});
files = readFiles(cwd);
});

it('resolves JS', () => {
Expand Down
10 changes: 5 additions & 5 deletions test/build/package-tippy-js/package-tippy-js.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ describe('package: tippy.js', () => {
beforeAll(() => {
setupBuildTest(__dirname);

files = readFiles(['_dist_/index.js'], {cwd});
files = readFiles(cwd);
});

it('builds to the correct path', () => {
const mainEntry = path.join(cwd, 'web_modules', 'tippyjs.js');
const assets = path.join(cwd, 'web_modules', 'tippyjs');
const mainEntryLoc = path.join(cwd, 'web_modules', 'tippyjs.js');
const assetsLoc = path.join(cwd, 'web_modules', 'tippyjs');

expect(fs.existsSync(mainEntry) && fs.statSync(mainEntry).isFile()).toBe(true);
expect(fs.existsSync(assets) && fs.statSync(assets).isDirectory()).toBe(true);
expect(fs.existsSync(mainEntryLoc) && fs.statSync(mainEntryLoc).isFile()).toBe(true);
expect(fs.existsSync(assetsLoc) && fs.statSync(assetsLoc).isDirectory()).toBe(true);
});

it('resolves imports', () => {
Expand Down
10 changes: 5 additions & 5 deletions test/build/plugin-build-script/plugin-build-script.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ describe('@snowpack/plugin-build-script', () => {
});

it('runs Babel on TS', () => {
const js = path.join(cwd, '_dist_', 'index.js');
expect(fs.existsSync(js)).toBe(true); // file exists
expect(fs.readFileSync(js, 'utf-8')).toBeTruthy(); // file has content
const jsLoc = path.join(cwd, '_dist_', 'index.js');
expect(fs.existsSync(jsLoc)).toBe(true); // file exists
expect(fs.readFileSync(jsLoc, 'utf-8')).toBeTruthy(); // file has content
});

it('doesn’t leave TS in build', () => {
const ts = path.join(cwd, '_dist_', 'index.ts');
expect(fs.existsSync(ts)).not.toBe(true); // file doesn’t exist
const tsLoc = path.join(cwd, '_dist_', 'index.ts');
expect(fs.existsSync(tsLoc)).not.toBe(true); // file doesn’t exist
});
});
4 changes: 2 additions & 2 deletions test/build/plugin-hook-optimize/plugin-hook-optimize.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ describe('plugin API: optimize()', () => {
expect(files.join(',')).not.toEqual(expect.stringContaining('artifact.txt')); // note: this is a simple check if `artifact.txt` occurs in any part of a filename here

// test 2: artifact.txt is generated by optimize() plugin hook
const artifact = path.join(__dirname, 'build', 'artifact.txt');
expect(fs.existsSync(artifact)).toBe(true);
const artifactLoc = path.join(__dirname, 'build', 'artifact.txt');
expect(fs.existsSync(artifactLoc)).toBe(true);
});
});
Loading

0 comments on commit 0671b80

Please sign in to comment.