Skip to content

Commit

Permalink
Update index.js / framework.js
Browse files Browse the repository at this point in the history
  • Loading branch information
matz3 committed Nov 23, 2020
1 parent d2f8dc2 commit 174008c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 16 deletions.
11 changes: 5 additions & 6 deletions lib/framework.js
Original file line number Diff line number Diff line change
Expand Up @@ -519,12 +519,10 @@ class Framework {

async setupMiddleware() {
const config = this.config;

config.ui5._beforeMiddleware = this.beforeMiddleware = new Router();
config.ui5._middleware = this.middleware = new Router();

if (config.ui5.type === "library") {
this.beforeMiddleware.use(this.beforeMiddlewareRewriteUrl.bind(this));
config.ui5._beforeMiddleware = new Router();
config.ui5._beforeMiddleware.use(this.beforeMiddlewareRewriteUrl.bind(this));
config.beforeMiddleware.push("ui5--beforeMiddleware");
}

Expand All @@ -539,8 +537,9 @@ class Framework {
}

if (middleware) {
this.middleware.use(this.middlewareRewriteUrl.bind(this));
this.middleware.use(middleware);
config.ui5._middleware = new Router();
config.ui5._middleware.use(this.middlewareRewriteUrl.bind(this));
config.ui5._middleware.use(middleware);
config.middleware.push("ui5--middleware");
}
}
Expand Down
12 changes: 6 additions & 6 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const {ErrorMessage} = require("./errors");
const Framework = require("./framework");
const framework = new Framework();

async function init(config, logger) {
try {
const framework = new Framework();
await framework.init({config, logger});
} catch (error) {
const _logger = logger.create("ui5.framework");
Expand All @@ -13,13 +13,13 @@ async function init(config, logger) {
}
init.$inject = ["config", "logger"];

function getBeforeMiddleware(config) {
return config.ui5._beforeMiddleware;
function getBeforeMiddleware(ui5) {
return ui5._beforeMiddleware;
}
function getMiddleware(config) {
return config.ui5._middleware;
function getMiddleware(ui5) {
return ui5._middleware;
}
getBeforeMiddleware.$inject = getMiddleware.$inject = ["config"];
getBeforeMiddleware.$inject = getMiddleware.$inject = ["config.ui5"];

module.exports = {
"framework:ui5": ["factory", init],
Expand Down
37 changes: 33 additions & 4 deletions test/unit/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,47 @@ describe("Karma Plugin", () => {
expect(plugin["middleware:ui5--beforeMiddleware"]).toHaveLength(2);
expect(plugin["middleware:ui5--beforeMiddleware"][0]).toBe("factory");
expect(plugin["middleware:ui5--beforeMiddleware"][1]).toStrictEqual(expect.any(Function));
expect(plugin["middleware:ui5--beforeMiddleware"][1].$inject).toStrictEqual(["config"]);
expect(plugin["middleware:ui5--beforeMiddleware"][1].$inject).toStrictEqual(["config.ui5"]);
});
it("Should export middleware:ui5--middleware", async () => {
const plugin = require("../../");
expect(plugin["middleware:ui5--middleware"]).toStrictEqual(expect.any(Array));
expect(plugin["middleware:ui5--middleware"]).toHaveLength(2);
expect(plugin["middleware:ui5--middleware"][0]).toBe("factory");
expect(plugin["middleware:ui5--middleware"][1]).toStrictEqual(expect.any(Function));
expect(plugin["middleware:ui5--middleware"][1].$inject).toStrictEqual(["config"]);
expect(plugin["middleware:ui5--middleware"][1].$inject).toStrictEqual(["config.ui5"]);
});

it.skip("Should be able to initialize multiple times", async () => {
it("Should be able to initialize multiple times", async () => {
const Framework = require("../../lib/framework");
const plugin = require("../../");
const frameworkInitStub = jest.spyOn(Framework.prototype, "init").mockImplementation();

const config1 = {};
const logger1 = {
create: jest.fn(() => {
return {
log: jest.fn()
};
})
};

await plugin["framework:ui5"][1](config1, logger1);

expect(frameworkInitStub).toHaveBeenCalledTimes(1);
expect(frameworkInitStub).toHaveBeenCalledWith({config: config1, logger: logger1});

const config2 = {};
const logger2 = {
create: jest.fn(() => {
return {
log: jest.fn()
};
})
};

await plugin["framework:ui5"][1](config2, logger2);

expect(frameworkInitStub).toHaveBeenCalledTimes(2);
expect(frameworkInitStub).toHaveBeenCalledWith({config: config2, logger: logger2});
});
});

0 comments on commit 174008c

Please sign in to comment.