Skip to content

Commit e3e060e

Browse files
test nextjs. Server
1 parent 8bc36f6 commit e3e060e

File tree

5 files changed

+37
-10
lines changed

5 files changed

+37
-10
lines changed

packages/devextreme-cli/src/utility/run-command.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,18 @@ module.exports = function(commandName, args = [], customConfig = {}) {
1717

1818
console.log(`> ${command} ${args.join(' ')}`);
1919

20-
return new Promise((resolve, reject) => {
21-
spawn(command, args, config)
22-
.on('exit', (code) => code ? reject(code) : resolve());
20+
const proc = spawn(command, args, config);
21+
22+
const promise = new Promise((resolve, reject) => {
23+
proc.on('exit', (code) => code ? reject(code) : resolve());
2324
});
25+
26+
promise.kill = (signal = 'SIGTERM') => {
27+
return new Promise((resolve, reject) => {
28+
proc.kill(signal);
29+
resolve();
30+
});
31+
};
32+
33+
return promise;
2434
};
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
const { nextjsTs } = require('../env.nextjs');
22
const testAppTemplate = require('../app-template.test.shared.js');
3-
testAppTemplate(nextjsTs);
3+
testAppTemplate(nextjsTs, {
4+
port: 3000,
5+
});
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
const { nextjsJs } = require('../env.nextjs');
22
const testAppTemplate = require('../app-template.test.shared.js');
3-
testAppTemplate(nextjsJs);
3+
testAppTemplate(nextjsJs, {
4+
port: 3000,
5+
});

packages/devextreme-cli/testing/app-template.test.shared.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ const DevServer = require('./dev-server');
77

88
const defaultLayout = 'side-nav-outer-toolbar';
99

10-
module.exports = (env) => {
11-
const appUrl = `http://${ip.address()}:8080/`;
10+
module.exports = (env, { port } = { port: '8080' }) => {
11+
const appUrl = `http://${ip.address()}:${port}/`;
1212
const diffSnapshotsDir = path.join('testing/__tests__/__diff_snapshots__', env.engine);
1313

1414
const pageUrls = {
@@ -17,7 +17,7 @@ module.exports = (env) => {
1717
page: `${(env.engine === 'angular' ? 'pages/' : '')}new-page`,
1818
};
1919

20-
const getPageURL = (name) => `${appUrl}${(!env.engine.includes('nextjs') ? '#/' : '')}${pageUrls[name]}`;
20+
const getPageURL = (name) => `${appUrl}${(env.engine.indexOf('nextjs') !== 0 ? '#/' : '')}${pageUrls[name]}`;
2121

2222
describe(`${env.engine} app-template`, () => {
2323
let browser;

packages/devextreme-cli/testing/dev-server.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,31 @@ const WebServer = require('./web-server');
55
const webServer = new WebServer();
66
const runCommand = require('../src/utility/run-command');
77
const { themes, swatchModes, baseFontFamily } = require('./constants');
8+
let startedPromise = null;
89

910
module.exports = class DevServer {
1011
constructor(env) {
1112
this.env = env;
1213
}
1314

1415
async start() {
15-
await webServer.start(this.env.deployPath);
16+
if(this.env.engine.indexOf('nextjs') === 0) {
17+
startedPromise = runCommand('npm', ['run', 'start'], {
18+
cwd: this.env.appPath,
19+
// https://github.com/facebook/create-react-app/issues/3657
20+
env: Object.assign(process.env, { CI: false })
21+
});
22+
} else {
23+
await webServer.start(this.env.deployPath);
24+
}
1625
}
1726

1827
async stop() {
19-
await webServer.stop();
28+
if(this.env.engine.indexOf('nextjs') === 0) {
29+
await startedPromise.kill();
30+
} else {
31+
await webServer.stop();
32+
}
2033
}
2134

2235
async build() {

0 commit comments

Comments
 (0)