mirror of
https://github.com/discourse/discourse.git
synced 2025-02-16 23:22:44 +08:00
DEV: prevents route nodes to leak on each test run (#14457)
Note this commit is also adding support for teardown in pre-initializers just like we have for initializers. Co-authored-by: Jarek Radosz <jradosz@gmail.com> Co-authored-by: David Taylor <david@taylorhq.com>
This commit is contained in:
parent
a0cb340eef
commit
4dc14e3a3f
|
@ -141,6 +141,11 @@ export function mapRoutes() {
|
|||
this.route("unknown", { path: "*path" });
|
||||
});
|
||||
}
|
||||
export function teardownRouter(container) {
|
||||
const router = container.lookup("router:main");
|
||||
const constructor = Object.getPrototypeOf(router).constructor;
|
||||
constructor.dslCallbacks.splice(0, constructor.dslCallbacks.length);
|
||||
}
|
||||
|
||||
export function registerRouter(registry) {
|
||||
registry.unregister("router:main");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Application from "@ember/application";
|
||||
import { isLegacyEmber } from "discourse-common/config/environment";
|
||||
import { registerRouter } from "discourse/mapping-router";
|
||||
import { registerRouter, teardownRouter } from "discourse/mapping-router";
|
||||
|
||||
let originalBuildInstance;
|
||||
|
||||
|
@ -23,4 +23,8 @@ export default {
|
|||
};
|
||||
}
|
||||
},
|
||||
|
||||
teardown(container) {
|
||||
teardownRouter(container);
|
||||
},
|
||||
};
|
||||
|
|
|
@ -296,6 +296,11 @@ export function acceptance(name, optionsOrCallback) {
|
|||
initializer.teardown(this.container);
|
||||
}
|
||||
});
|
||||
app._runInitializer("initializers", (initName, initializer) => {
|
||||
if (initializer && initializer.teardown) {
|
||||
initializer.teardown(this.container);
|
||||
}
|
||||
});
|
||||
|
||||
if (LEGACY_ENV) {
|
||||
app.__registeredObjects__ = false;
|
||||
|
|
Loading…
Reference in New Issue
Block a user