Commit b415d826 by Torkel Ödegaard

fixed to template PR issues, #13938

parent 70bb81c6
...@@ -18,6 +18,7 @@ import ( ...@@ -18,6 +18,7 @@ import (
) )
func TestMiddlewareContext(t *testing.T) { func TestMiddlewareContext(t *testing.T) {
setting.ERR_TEMPLATE_NAME = "error-template"
Convey("Given the grafana middleware", t, func() { Convey("Given the grafana middleware", t, func() {
middlewareScenario("middleware should add context to injector", func(sc *scenarioContext) { middlewareScenario("middleware should add context to injector", func(sc *scenarioContext) {
......
...@@ -138,7 +138,7 @@ func Recovery() macaron.Handler { ...@@ -138,7 +138,7 @@ func Recovery() macaron.Handler {
c.JSON(500, resp) c.JSON(500, resp)
} else { } else {
c.HTML(500, "error") c.HTML(500, setting.ERR_TEMPLATE_NAME)
} }
} }
}() }()
......
...@@ -8,11 +8,14 @@ import ( ...@@ -8,11 +8,14 @@ import (
"github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/bus"
m "github.com/grafana/grafana/pkg/models" m "github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/services/session" "github.com/grafana/grafana/pkg/services/session"
"github.com/grafana/grafana/pkg/setting"
. "github.com/smartystreets/goconvey/convey" . "github.com/smartystreets/goconvey/convey"
"gopkg.in/macaron.v1" "gopkg.in/macaron.v1"
) )
func TestRecoveryMiddleware(t *testing.T) { func TestRecoveryMiddleware(t *testing.T) {
setting.ERR_TEMPLATE_NAME = "error-template"
Convey("Given an api route that panics", t, func() { Convey("Given an api route that panics", t, func() {
apiURL := "/api/whatever" apiURL := "/api/whatever"
recoveryScenario("recovery middleware should return json", apiURL, func(sc *scenarioContext) { recoveryScenario("recovery middleware should return json", apiURL, func(sc *scenarioContext) {
...@@ -50,6 +53,7 @@ func recoveryScenario(desc string, url string, fn scenarioFunc) { ...@@ -50,6 +53,7 @@ func recoveryScenario(desc string, url string, fn scenarioFunc) {
sc := &scenarioContext{ sc := &scenarioContext{
url: url, url: url,
} }
viewsPath, _ := filepath.Abs("../../public/views") viewsPath, _ := filepath.Abs("../../public/views")
sc.m = macaron.New() sc.m = macaron.New()
......
...@@ -36,7 +36,7 @@ func (ctx *ReqContext) Handle(status int, title string, err error) { ...@@ -36,7 +36,7 @@ func (ctx *ReqContext) Handle(status int, title string, err error) {
ctx.Data["AppSubUrl"] = setting.AppSubUrl ctx.Data["AppSubUrl"] = setting.AppSubUrl
ctx.Data["Theme"] = "dark" ctx.Data["Theme"] = "dark"
ctx.HTML(status, "error") ctx.HTML(status, setting.ERR_TEMPLATE_NAME)
} }
func (ctx *ReqContext) JsonOK(message string) { func (ctx *ReqContext) JsonOK(message string) {
......
...@@ -39,6 +39,10 @@ const ( ...@@ -39,6 +39,10 @@ const (
) )
var ( var (
ERR_TEMPLATE_NAME = "error"
)
var (
// App settings. // App settings.
Env = DEV Env = DEV
AppUrl string AppUrl string
......
import _ from 'lodash';
import { PanelModel } from '../panel_model';
describe('PanelModel', () => {
describe('when creating new panel model', () => {
let model;
beforeEach(() => {
model = new PanelModel({});
});
it('should apply defaults', () => {
expect(model.gridPos.h).toBe(3);
});
it('getSaveModel should remove defaults', () => {
const saveModel = model.getSaveModel();
expect(saveModel.gridPos).toBe(undefined);
});
it('getSaveModel should remove nonPersistedProperties', () => {
const saveModel = model.getSaveModel();
expect(saveModel.events).toBe(undefined);
});
describe('when calling applyDefaults', () => {
beforeEach(() => {
const defaults = {
myName: 'My name',
myBool1: true,
myBool2: false,
myNumber: 0,
nestedObj: {
myName: 'nested name',
myBool1: true,
myBool2: false,
myNumber: 0,
},
};
model.applyDefaults(defaults);
});
it('Should apply defaults', () => {
expect(model.myName).toBe('My name');
expect(model.myBool1).toBe(true);
expect(model.myBool2).toBe(false);
expect(model.myNumber).toBe(0);
expect(model.nestedObj.myName).toBe('nested name');
expect(model.nestedObj.myBool1).toBe(true);
expect(model.nestedObj.myBool2).toBe(false);
expect(model.nestedObj.myNumber).toBe(0);
});
it('getSaveModel should remove them', () => {
const saveModel = model.getSaveModel();
expect(saveModel.myName).toBe(undefined);
expect(saveModel.nestedObj).toBe(undefined);
});
it('getSaveModel should remove only unchanged defaults', () => {
model.myName = 'changed';
model.nestedObj.myBool2 = true;
const saveModel = model.getSaveModel();
expect(saveModel.myName).toBe('changed');
expect(saveModel.nestedObj.myBool2).toBe(true);
expect(saveModel.nestedObj.myBool1).toBe(undefined);
});
});
});
});
...@@ -47,7 +47,7 @@ module.exports = { ...@@ -47,7 +47,7 @@ module.exports = {
}, },
{ {
test: /\.html$/, test: /\.html$/,
exclude: /(index|error)\.template\.html/, exclude: /(index|error)\-template\.html/,
use: [ use: [
{ loader: 'ngtemplate-loader?relativeTo=' + (path.resolve(__dirname, '../../public')) + '&prefix=public' }, { loader: 'ngtemplate-loader?relativeTo=' + (path.resolve(__dirname, '../../public')) + '&prefix=public' },
{ {
......
...@@ -84,12 +84,12 @@ module.exports = merge(common, { ...@@ -84,12 +84,12 @@ module.exports = merge(common, {
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
filename: path.resolve(__dirname, '../../public/views/error.html'), filename: path.resolve(__dirname, '../../public/views/error.html'),
template: path.resolve(__dirname, '../../public/views/error.template.html'), template: path.resolve(__dirname, '../../public/views/error-template.html'),
inject: 'false', inject: 'false',
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
filename: path.resolve(__dirname, '../../public/views/index.html'), filename: path.resolve(__dirname, '../../public/views/index.html'),
template: path.resolve(__dirname, '../../public/views/index.template.html'), template: path.resolve(__dirname, '../../public/views/index-template.html'),
inject: 'body', inject: 'body',
chunks: ['manifest', 'vendor', 'app'], chunks: ['manifest', 'vendor', 'app'],
}), }),
......
...@@ -87,7 +87,7 @@ module.exports = merge(common, { ...@@ -87,7 +87,7 @@ module.exports = merge(common, {
new CleanWebpackPlugin('../public/build', { allowExternal: true }), new CleanWebpackPlugin('../public/build', { allowExternal: true }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
filename: path.resolve(__dirname, '../../public/views/index.html'), filename: path.resolve(__dirname, '../../public/views/index.html'),
template: path.resolve(__dirname, '../../public/views/index.template.html'), template: path.resolve(__dirname, '../../public/views/index-template.html'),
inject: 'body', inject: 'body',
alwaysWriteToDisk: true alwaysWriteToDisk: true
}), }),
......
...@@ -76,13 +76,13 @@ module.exports = merge(common, { ...@@ -76,13 +76,13 @@ module.exports = merge(common, {
new ngAnnotatePlugin(), new ngAnnotatePlugin(),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
filename: path.resolve(__dirname, '../../public/views/index.html'), filename: path.resolve(__dirname, '../../public/views/index.html'),
template: path.resolve(__dirname, '../../public/views/index.template.html'), template: path.resolve(__dirname, '../../public/views/index-template.html'),
inject: 'body', inject: 'body',
chunks: ['vendor', 'app'], chunks: ['vendor', 'app'],
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
filename: path.resolve(__dirname, '../../public/views/error.html'), filename: path.resolve(__dirname, '../../public/views/error.html'),
template: path.resolve(__dirname, '../../public/views/error.template.html'), template: path.resolve(__dirname, '../../public/views/error-template.html'),
inject: false, inject: false,
}), }),
function () { function () {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment