summaryrefslogtreecommitdiffhomepage
path: root/test/test_node_es_modules.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_node_es_modules.py')
-rw-r--r--test/test_node_es_modules.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/test_node_es_modules.py b/test/test_node_es_modules.py
new file mode 100644
index 00000000..ce27e474
--- /dev/null
+++ b/test/test_node_es_modules.py
@@ -0,0 +1,50 @@
+import pytest
+
+from distutils.version import LooseVersion
+from unit.applications.lang.node import TestApplicationNode
+from unit.applications.websockets import TestApplicationWebsocket
+
+
+class TestNodeESModules(TestApplicationNode):
+ prerequisites = {
+ 'modules': {
+ 'node': lambda v: LooseVersion(v) >= LooseVersion("14.16.0")
+ }
+ }
+
+ es_modules = True
+ ws = TestApplicationWebsocket()
+
+ 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_es_modules_require_shim_http(self):
+ self.load('require_shim/es_modules_http', name="app.mjs")
+
+ self.assert_basic_application()
+
+ def test_node_es_modules_require_shim_http_indirect(self):
+ self.load('require_shim/es_modules_http_indirect', name="app.js")
+
+ self.assert_basic_application()
+
+ def test_node_es_modules_require_shim_websockets(self):
+ self.load('require_shim/es_modules_websocket', name="app.mjs")
+
+ message = 'blah'
+
+ _, sock, _ = self.ws.upgrade()
+
+ self.ws.frame_write(sock, self.ws.OP_TEXT, message)
+ frame = self.ws.frame_read(sock)
+
+ assert message == frame['data'].decode('utf-8'), 'mirror'
+
+ self.ws.frame_write(sock, self.ws.OP_TEXT, message)
+ frame = self.ws.frame_read(sock)
+
+ assert message == frame['data'].decode('utf-8'), 'mirror 2'
+
+ sock.close()