11865So.canty@f5.comimport pytest 21865So.canty@f5.com 31865So.canty@f5.comfrom distutils.version import LooseVersion 41865So.canty@f5.comfrom unit.applications.lang.node import TestApplicationNode 51865So.canty@f5.comfrom unit.applications.websockets import TestApplicationWebsocket 61865So.canty@f5.com 71865So.canty@f5.com 81865So.canty@f5.comclass TestNodeESModules(TestApplicationNode): 91865So.canty@f5.com prerequisites = { 101865So.canty@f5.com 'modules': { 111865So.canty@f5.com 'node': lambda v: LooseVersion(v) >= LooseVersion("14.16.0") 121865So.canty@f5.com } 131865So.canty@f5.com } 141865So.canty@f5.com 151865So.canty@f5.com es_modules = True 161865So.canty@f5.com ws = TestApplicationWebsocket() 171865So.canty@f5.com 181865So.canty@f5.com def assert_basic_application(self): 191865So.canty@f5.com resp = self.get() 201865So.canty@f5.com assert resp['headers']['Content-Type'] == 'text/plain', 'basic header' 211865So.canty@f5.com assert resp['body'] == 'Hello World\n', 'basic body' 221865So.canty@f5.com 23*1876So.canty@f5.com def test_node_es_modules_loader_http(self): 24*1876So.canty@f5.com self.load('loader/es_modules_http', name="app.mjs") 251865So.canty@f5.com 261865So.canty@f5.com self.assert_basic_application() 271865So.canty@f5.com 28*1876So.canty@f5.com def test_node_es_modules_loader_http_indirect(self): 29*1876So.canty@f5.com self.load('loader/es_modules_http_indirect', name="app.js") 301865So.canty@f5.com 311865So.canty@f5.com self.assert_basic_application() 321865So.canty@f5.com 33*1876So.canty@f5.com def test_node_es_modules_loader_websockets(self): 34*1876So.canty@f5.com self.load('loader/es_modules_websocket', name="app.mjs") 351865So.canty@f5.com 361865So.canty@f5.com message = 'blah' 371865So.canty@f5.com 381865So.canty@f5.com _, sock, _ = self.ws.upgrade() 391865So.canty@f5.com 401865So.canty@f5.com self.ws.frame_write(sock, self.ws.OP_TEXT, message) 411865So.canty@f5.com frame = self.ws.frame_read(sock) 421865So.canty@f5.com 431865So.canty@f5.com assert message == frame['data'].decode('utf-8'), 'mirror' 441865So.canty@f5.com 451865So.canty@f5.com self.ws.frame_write(sock, self.ws.OP_TEXT, message) 461865So.canty@f5.com frame = self.ws.frame_read(sock) 471865So.canty@f5.com 481865So.canty@f5.com assert message == frame['data'].decode('utf-8'), 'mirror 2' 491865So.canty@f5.com 501865So.canty@f5.com sock.close() 51