Explorar el Código

Merge pull request #3613 from overleaf/em-unit-tests-leaks

Fix memory leaks in unit tests

GitOrigin-RevId: e2b366dd9f277823db4c7c00c209da2b3774a0fe
Eric Mc Sween hace 5 años
padre
commit
bbe4137d81
Se han modificado 1 ficheros con 14 adiciones y 0 borrados
  1. 14 0
      services/web/test/unit/bootstrap.js

+ 14 - 0
services/web/test/unit/bootstrap.js

@@ -52,3 +52,17 @@ LIBRARIES.forEach(lib => {
 SandboxedModule.configure({
 SandboxedModule.configure({
   requires: GLOBAL_REQUIRE_CACHE_FOR_SANDBOXED_MODULES
   requires: GLOBAL_REQUIRE_CACHE_FOR_SANDBOXED_MODULES
 })
 })
+
+// sandboxed-module somehow registers every fake module it creates in this
+// module's children array, which uses quite a big amount of memory. We'll take
+// a copy of the module children array and restore it after each test so that
+// the garbage collector has a chance to reclaim the fake modules.
+let initialModuleChildren
+before('record initial module children', function() {
+  initialModuleChildren = module.children.slice()
+})
+
+afterEach('restore module children', function() {
+  // Delete leaking sandboxed modules
+  module.children = initialModuleChildren.slice()
+})