Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Commit

Permalink
test: add tests for #1191 and #1192
Browse files Browse the repository at this point in the history
  • Loading branch information
erossignon authored and jesec committed Jun 2, 2021
1 parent 4bbcf0a commit 47047a7
Show file tree
Hide file tree
Showing 13 changed files with 242 additions and 4 deletions.
1 change: 1 addition & 0 deletions test/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
1 change: 0 additions & 1 deletion test/test-1135-issue/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ console.log('node version = ', version);
const npmlog = utils.exec.sync('npm install');
console.log('npm log :', npmlog);

// verify that we have the .pnpm folder and a symlinks module in node_modules
assert(fs.lstatSync(path.join(__dirname, 'node_modules/canvas')).isDirectory());
assert(
fs.lstatSync(path.join(__dirname, 'node_modules/canvas/build')).isDirectory()
Expand Down
3 changes: 3 additions & 0 deletions test/test-1191/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output*
test.sqlite
package-lock*
4 changes: 4 additions & 0 deletions test/test-1191/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
'use strict';

require('better-sqlite3')('test.sqlite');
console.log('42');
68 changes: 68 additions & 0 deletions test/test-1191/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#!/usr/bin/env node

'use strict';

const path = require('path');
const assert = require('assert');
const utils = require('../utils.js');

assert(!module.parent);
assert(__dirname === process.cwd());

/* eslint-disable no-unused-vars */
const target = process.argv[2] || 'host';
const ext = process.platform === 'win32' ? '.exe' : '';
const output1 = './output1' + ext;
const output2 = './output2' + ext;
const input = './index.js';

// remove any possible left-over
utils.vacuum.sync('./node_modules');

const version = utils.exec.sync('node --version');
console.log('node version = ', version);

// launch `yarn`
const yarnlog = utils.exec.sync('yarn');
console.log('yarn log :', yarnlog);

// -----------------------------------------------------------------------
// Execute programm outside pjg
const logRef = utils.spawn.sync('node', [path.join(__dirname, input)], {
cwd: __dirname,
expect: 0,
});

if (logRef.replace(/\r|\n/g, '') !== '42') {
console.log(`expecting 42 but got ${logRef}`);
process.exit(1);
}

function doTestNoCompression() {
console.log('doTestNoCompression');
utils.pkg.sync(['--target', target, '--output', output2, input], {
// expect: 0,
});
const log = utils.spawn.sync(path.join(__dirname, output2), [], {
cwd: __dirname,
expect: 0,
stdio: ['inherit', 'pipe', 'pipe'],
});
return log;
}

const logNoCompression = doTestNoCompression();
if (logNoCompression.stderr !== '') {
console.log('NO COMPRESSION: expecting no error');
console.log('but got =', logNoCompression.stderr);
process.exit(1);
}

// now with compress

utils.vacuum.sync(output1);
utils.vacuum.sync(output2);
utils.vacuum.sync('node_modules');
utils.vacuum.sync('package-lock.json');
utils.vacuum.sync('test.sqlite');
console.log('Done');
15 changes: 15 additions & 0 deletions test/test-1191/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "test-1191",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"better-sqlite3": "^7.4.0"
}
}
1 change: 1 addition & 0 deletions test/test-1192/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dist/
66 changes: 66 additions & 0 deletions test/test-1192/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/usr/bin/env node

'use strict';

const path = require('path');
const assert = require('assert');
const utils = require('../utils.js');

assert(!module.parent);
assert(__dirname === process.cwd());

/* eslint-disable no-unused-vars */
const target = process.argv[2] || 'host';

const ext = process.platform === 'win32' ? '.exe' : '';
const cmd = process.platform === 'win32' ? '.cmd' : '';
const output = './output' + ext;
const input = './package.json';

// remove any possible left-over
utils.vacuum.sync('./node_modules');

const version = utils.exec.sync('node --version');
console.log('node version = ', version);

// launch `yarn`
const yarnlog = utils.exec.sync('yarn');
console.log('yarn log :', yarnlog);

utils.pkg.sync(['--target', target, '--output', output, input], {
expect: 0,
});

// -----------------------------------------------------------------------
// Execute programm outside pjg
const logRef = utils.spawn.sync(
'node',
[path.join(__dirname, 'src/index.js')],
{
cwd: __dirname,
expect: 0,
stdio: ['inherit', 'pipe', 'pipe'],
}
);

const log = utils.spawn.sync(path.join(__dirname, output), [], {
cwd: __dirname,
// expect: 0,
stdio: ['inherit', 'pipe', 'pipe'],
});

if (logRef.stdout !== log.stdout) {
console.log('expecting', logRef.stdout);
console.log('but got =', log.stdout);
process.exit(1);
}
if (logRef.stderr !== log.stderr) {
console.log('expecting', logRef.stderr);
console.log('but got =', log.stderr);
process.exit(1);
}

utils.vacuum.sync(output);
utils.vacuum.sync('node_modules');
utils.vacuum.sync('package-lock.json');
console.log('Done');
24 changes: 24 additions & 0 deletions test/test-1192/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "pkg-express",
"version": "1.0.0",
"description": "Illustrates issue between pkg 5.2.X and express (works with with pkg pre 5.2.X).",
"repository": "",
"main": "src/index.js",
"bin": "src/index.js",
"license": "MIT",
"scripts": {
"postinstall": "npm run make",
"start": "node .",
"make": "pkg . -o ./dist/pkg-express.exe"
},
"dependencies": {
"express": "^4.17.1",
"pug": "^3.0.2"
},
"devDependencies": {
"pkg": "5.2.1"
},
"pkg": {
"assets": "./public/views/*.pug"
}
}
8 changes: 8 additions & 0 deletions test/test-1192/public/views/index.pug
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

html
head
title Hello World!
body
p Hello World!


47 changes: 47 additions & 0 deletions test/test-1192/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
'use strict';

const http = require('http');
const path = require('path');
const express = require('express');

// Express app
const app = express();
// Express views
app.set('views', path.join(__dirname, '../public/views'));
// Use pug as Express view engine
app.set('view engine', 'pug');
// Match all routes
app.use('*', (_req, res) => {
res.render('index.pug');
});

// Start HTTP server
const listener = http.createServer(app).listen(8080, () => {
console.info('Server started, listening on %d', listener.address().port);
});

// ------------------ now query he server
(async () => {
const options = {
hostname: '127.0.0.1',
path: '/',
method: 'GET',
port: 8080,
};

const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (d) => {
process.stdout.write(d);
});
});

req.on('error', (error) => {
console.error(error);
process.exit(1);
});
req.on('close', () => {
process.exit(0);
});
req.end();
})();
2 changes: 2 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ if (flavor === 'only-npm') {
list.push('!' + joinAndForward('test-46-multi-arch'));
list.push('!' + joinAndForward('test-46-multi-arch-2'));
list.push('!' + joinAndForward('test-79-npm'));
list.push('!' + joinAndForward('test-1191'));
list.push('!' + joinAndForward('test-1192'));
}
}

Expand Down
6 changes: 3 additions & 3 deletions test/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ const path = require('path');
const mkdirp = require('mkdirp');
const rimraf = require('rimraf');
const globby = require('globby');
const execSync = require('child_process').execSync;
const spawnSync = require('child_process').spawnSync;
const existsSync = require('fs').existsSync;
const { execSync } = require('child_process');
const { spawnSync } = require('child_process');
const { existsSync } = require('fs');
const stableStringify = require('json-stable-stringify');

module.exports.mkdirp = mkdirp;
Expand Down

0 comments on commit 47047a7

Please sign in to comment.