Skip to content
This repository was archived by the owner on Nov 30, 2023. It is now read-only.

Commit f0f134d

Browse files
committed
Update tests
1 parent f233c8e commit f0f134d

File tree

29 files changed

+2128
-1392
lines changed

29 files changed

+2128
-1392
lines changed
Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
{
2-
"name": "docker_web_app",
3-
"version": "1.0.0",
4-
"description": "Node.js on Docker",
5-
"author": "First Last <[email protected]>",
6-
"main": "server.js",
7-
"scripts": {
8-
"start": "node server.js"
9-
},
10-
"dependencies": {
11-
"express": "^4.16.1"
12-
}
2+
"name": "docker_web_app",
3+
"version": "1.0.0",
4+
"description": "Node.js on Docker",
5+
"author": "First Last <[email protected]>",
6+
"main": "server.js",
7+
"scripts": {
8+
"start": "node server.js",
9+
"test": " REGRESSION_TESTING=true npm start"
10+
},
11+
"dependencies": {
12+
"express": "^4.16.1"
13+
}
1314
}

containers/javascript-node-8/test-project/server.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
/*---------------------------------------------------------------------------------------------------------------
1+
/*--------------------------------------------------------------------------------------------------------------
22
* Copyright (c) Microsoft Corporation. All rights reserved.
33
* Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
4-
*--------------------------------------------------------------------------------------------------------------*/
4+
*-------------------------------------------------------------------------------------------------------------*/
55

66
'use strict';
77

@@ -18,4 +18,7 @@ app.get('/', (req, res) => {
1818
});
1919

2020
app.listen(PORT, HOST);
21-
console.log(`Running on http://${HOST}:${PORT}`);
21+
console.log(`Running on http://${HOST}:${PORT}`);
22+
23+
// Used for automated testing
24+
if(process.env.REGRESSION_TESTING === 'true') { process.exit(0); }
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
if [ -z $HOME ]; then
5+
HOME="/root"
6+
fi
7+
8+
FAILED=()
9+
10+
check() {
11+
LABEL=$1
12+
shift
13+
echo -e "\n🧪 Testing $LABEL: $@"
14+
if $@; then
15+
echo "🏆 Passed!"
16+
else
17+
echo "💥 $LABEL check failed."
18+
FAILED+=("$LABEL")
19+
fi
20+
}
21+
22+
checkMultiple() {
23+
PASSED=0
24+
LABEL="$1"
25+
shift; MINIMUMPASSED=$1
26+
shift; EXPRESSION="$1"
27+
while [ "$EXPRESSION" != "" ]; do
28+
if $EXPRESSION; then ((PASSED++)); fi
29+
shift; EXPRESSION=$1
30+
done
31+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
32+
}
33+
34+
checkExtension() {
35+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]"
36+
}
37+
38+
# Actual tests
39+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]"
40+
checkExtension "dbaeumer.vscode-eslint"
41+
check "non-root-user" "id node"
42+
check "/home/node" [ -d "/home/node" ]
43+
check "sudo" sudo -u node echo "sudo works."
44+
check "node" "node --version"
45+
check "yarn" yarn install
46+
check "npm" npm install
47+
check "eslint" "eslint server.js"
48+
check "test-project" npm run test
49+
50+
# Report result
51+
if [ ${#FAILED[@]} -ne 0 ]; then
52+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
53+
exit 1
54+
else
55+
echo -e "\n💯 All passed!"
56+
exit 0
57+
fi
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"root": true,
3+
"env": {
4+
"node":true
5+
},
6+
"rules": {
7+
"no-console": 0,
8+
"eqeqeq":"warn",
9+
"no-cond-assign": 0,
10+
"no-unused-vars": 1,
11+
"no-extra-semi": "warn",
12+
"semi": "warn"
13+
},
14+
"extends": "eslint:recommended",
15+
"parserOptions": {
16+
"ecmaVersion": 2017,
17+
"ecmaFeatures": {
18+
"experimentalObjectRestSpread": true
19+
}
20+
}
21+
}
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
{
2-
"name": "docker_web_app",
3-
"version": "1.0.0",
4-
"description": "Node.js on Docker",
5-
"author": "First Last <[email protected]>",
6-
"main": "server.js",
7-
"scripts": {
8-
"start": "node server.js"
9-
},
10-
"dependencies": {
11-
"express": "^4.16.1",
12-
"mongodb": "^3.2.1"
13-
}
2+
"name": "docker_web_app",
3+
"version": "1.0.0",
4+
"description": "Node.js + MongoDB",
5+
"author": "First Last <[email protected]>",
6+
"main": "server.js",
7+
"scripts": {
8+
"start": "node server.js",
9+
"test": " REGRESSION_TESTING=true npm start"
10+
},
11+
"dependencies": {
12+
"express": "^4.16.1",
13+
"mongodb": "^3.2.1"
14+
}
1415
}

containers/javascript-node-lts-mongo/test-project/server.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ const MONGO_URL = 'mongodb://mongo:27017';
1414
const DB_NAME = 'test-project';
1515
const HOST = '0.0.0.0';
1616

17-
(async () => {
18-
17+
(async function() {
1918
// Use connect to mongo server
2019
const client = new MongoClient(MONGO_URL, { useNewUrlParser: true });
2120
await client.connect();
@@ -33,4 +32,9 @@ const HOST = '0.0.0.0';
3332

3433
app.listen(PORT, HOST);
3534
console.log(`Running on http://${HOST}:${PORT}`);
35+
36+
// Used for automated testing
37+
if(process.env.REGRESSION_TESTING === 'true') { process.exit(0); }
3638
})();
39+
40+
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
if [ -z $HOME ]; then
5+
HOME="/root"
6+
fi
7+
8+
FAILED=()
9+
10+
check() {
11+
LABEL=$1
12+
shift
13+
echo -e "\n🧪 Testing $LABEL: $@"
14+
if $@; then
15+
echo "🏆 Passed!"
16+
else
17+
echo "💥 $LABEL check failed."
18+
FAILED+=("$LABEL")
19+
fi
20+
}
21+
22+
checkMultiple() {
23+
PASSED=0
24+
LABEL="$1"
25+
shift; MINIMUMPASSED=$1
26+
shift; EXPRESSION="$1"
27+
while [ "$EXPRESSION" != "" ]; do
28+
if $EXPRESSION; then ((PASSED++)); fi
29+
shift; EXPRESSION=$1
30+
done
31+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
32+
}
33+
34+
checkExtension() {
35+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]"
36+
}
37+
38+
# Actual tests
39+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]"
40+
checkExtension "dbaeumer.vscode-eslint"
41+
check "non-root-user" "id node"
42+
check "/home/node" [ -d "/home/node" ]
43+
check "sudo" sudo -u node echo "sudo works."
44+
check "node" "node --version"
45+
check "yarn" yarn install
46+
check "npm" npm install
47+
check "eslint" "eslint server.js"
48+
check "test-project" npm run test
49+
50+
# Report result
51+
if [ ${#FAILED[@]} -ne 0 ]; then
52+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
53+
exit 1
54+
else
55+
echo -e "\n💯 All passed!"
56+
exit 0
57+
fi

0 commit comments

Comments
 (0)