diff options
author | Oisin Canty <o.canty@f5.com> | 2021-05-12 09:26:55 +0000 |
---|---|---|
committer | Oisin Canty <o.canty@f5.com> | 2021-05-12 09:26:55 +0000 |
commit | a0c083af208cd9f676bb56762b4e27a3174a773d (patch) | |
tree | 77542c99f13352ea9317a27e456ddde8f50ae5ef /test/test_node_application.py | |
parent | 07c6bf165d0e414da3827c7b2aebf5044a7e6093 (diff) | |
download | unit-a0c083af208cd9f676bb56762b4e27a3174a773d.tar.gz unit-a0c083af208cd9f676bb56762b4e27a3174a773d.tar.bz2 |
Node.js: a shim for overriding "http" and "websocket" modules.
Also added stubs for Server.address()
This was done to prevent crashes in some popular frameworks like express
Supports both CommonJS and the new ES Modules system syntax e.g:
app.js:
const http = require('http')
app.mjs:
import http from "http"
Usage on Node 14.16.x and higher:
{
"type": "external",
"processes": {"spare": 0},
"working_directory": '/project',
"executable": "/usr/bin/env",
"arguments": [
"node",
"--loader",
"unit-http/require_shim.mjs"
"--require",
"unit-http/require_shim",
"app.js"
]
}
Usage on Node 14.15.x and lower:
{
"type": "external",
"processes": {"spare": 0},
"working_directory": '/project',
"executable": "/usr/bin/env",
"arguments": [
"node",
"--require",
"unit-http/require_shim",
"app.js"
]
}
Diffstat (limited to 'test/test_node_application.py')
-rw-r--r-- | test/test_node_application.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/test/test_node_application.py b/test/test_node_application.py index 52ad72ee..59601ff0 100644 --- a/test/test_node_application.py +++ b/test/test_node_application.py @@ -9,13 +9,26 @@ from unit.utils import waitforfiles class TestNodeApplication(TestApplicationNode): prerequisites = {'modules': {'node': 'all'}} - def test_node_application_basic(self): - self.load('basic') - + def assert_basic_application(self): resp = self.get() assert resp['headers']['Content-Type'] == 'text/plain', 'basic header' assert resp['body'] == 'Hello World\n', 'basic body' + def test_node_application_basic(self): + self.load('basic') + + self.assert_basic_application() + + def test_node_application_require_shim_unit_http(self): + self.load('require_shim/unit_http') + + self.assert_basic_application() + + def test_node_application_require_shim_transitive_dependency(self): + self.load('require_shim/transitive_dependency') + + self.assert_basic_application() + def test_node_application_seq(self): self.load('basic') |