From be8483895da02a63aace05ad152b0974aac73259 Mon Sep 17 00:00:00 2001 From: xudafeng Date: Tue, 6 Aug 2019 11:49:35 +0800 Subject: [PATCH] fix: home context error --- app/controller/home.js | 6 ++++-- test/app/controller/home.test.js | 30 ++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/controller/home.js b/app/controller/home.js index b67896e..e590f25 100644 --- a/app/controller/home.js +++ b/app/controller/home.js @@ -3,13 +3,15 @@ const { Controller, } = require('egg'); +const safeGet = require('lodash/get'); class HomeController extends Controller { async index() { const ctx = this.ctx; const user = ctx.session.user; const { appid, callbackUrl } = ctx.app.config.authorize.dingtalkAuth; - const { data: configRes } = await this.ctx.model.Config.findOne({ raw: true }); + const siteConfig = await this.ctx.model.Config.findOne({ raw: true }); + const assetsUrl = safeGet(siteConfig, 'data.site.assetsUrl'); ctx.body = await this.app.render({ dingtalkAuth: { appid, @@ -20,7 +22,7 @@ class HomeController extends Controller { title: 'Reliable Suites for Macaca', pageId: 'home', SERVER_ADDRESS: this.config.reliableView.serverUrl, - assetsUrl: configRes.site && configRes.site.assetsUrl || this.config.reliableView.assetsUrl, + assetsUrl: assetsUrl || this.config.reliableView.assetsUrl, version: this.app.config.pkg.version, }); } diff --git a/test/app/controller/home.test.js b/test/app/controller/home.test.js index 2ec07bf..1cd94b0 100644 --- a/test/app/controller/home.test.js +++ b/test/app/controller/home.test.js @@ -1,18 +1,28 @@ 'use strict'; -const { app, assert } = require('egg-mock/bootstrap'); +const { app } = require('egg-mock/bootstrap'); describe('test/app/controller/home.test.js', () => { - it('assert keys', () => { - const pkg = require('../../../package.json'); - assert(app.config.keys.startsWith(pkg.name)); - }); + describe('GET /', () => { + it('should be ok', () => { + return app.httpRequest() + .get('/') + .expect(/Reliable Suites for Macaca/) + .expect(200); + }); - it('GET /', () => { - return app.httpRequest() - .get('/') - .expect(/Reliable Suites for Macaca/) - .expect(200); + it('should be ok with site config', async () => { + const ctx = app.mockContext(); + await ctx.model.Config.create({ + data: { + site: { + assetsUrl: 'https://foo', + }, + }, + }); + return app.httpRequest() + .get('/'); + }); }); });