Browse Source

fix(tests): fixed failling backend test

Torkel Ödegaard 10 years ago
parent
commit
8174b9f041

+ 5 - 1
main.go

@@ -69,12 +69,16 @@ func main() {
 }
 
 func initRuntime() {
-	setting.NewConfigContext(&setting.CommandLineArgs{
+	err := setting.NewConfigContext(&setting.CommandLineArgs{
 		Config:   *configFile,
 		HomePath: *homePath,
 		Args:     flag.Args(),
 	})
 
+	if err != nil {
+		log.Fatal(3, err.Error())
+	}
+
 	log.Info("Starting Grafana")
 	log.Info("Version: %v, Commit: %v, Build date: %v", setting.BuildVersion, setting.BuildCommit, time.Unix(setting.BuildStamp, 0))
 	setting.LogConfigurationInfo()

+ 20 - 11
pkg/setting/setting.go

@@ -6,6 +6,7 @@ package setting
 import (
 	"bytes"
 	"encoding/json"
+	"errors"
 	"fmt"
 	"net/url"
 	"os"
@@ -355,24 +356,26 @@ func setHomePath(args *CommandLineArgs) {
 	}
 }
 
-func getStaticRootPath(configValue string) string {
-	if configValue != "public" {
-		return configValue
+var skipStaticRootValidation bool = false
+
+func validateStaticRootPath() error {
+	if skipStaticRootValidation {
+		return nil
 	}
 
-	if _, err := os.Stat(path.Join(HomePath, configValue, "css")); err == nil {
-		return configValue
+	if _, err := os.Stat(path.Join(StaticRootPath, "css")); err == nil {
+		return nil
 	}
 
-	if _, err := os.Stat(path.Join(HomePath, "public_gen", "css")); err == nil {
-		return "public_gen"
+	if _, err := os.Stat(StaticRootPath + "_gen/css"); err == nil {
+		StaticRootPath = StaticRootPath + "_gen"
+		return nil
 	}
 
-	log.Fatal(3, "Failed to detect generated css or javascript files in static root (%s), have you executed default grunt task?", configValue)
-	return ""
+	return errors.New("Failed to detect generated css or javascript files in static root (%s), have you executed default grunt task?")
 }
 
-func NewConfigContext(args *CommandLineArgs) {
+func NewConfigContext(args *CommandLineArgs) error {
 	setHomePath(args)
 	loadConfiguration(args)
 
@@ -391,10 +394,14 @@ func NewConfigContext(args *CommandLineArgs) {
 	Domain = server.Key("domain").MustString("localhost")
 	HttpAddr = server.Key("http_addr").MustString("0.0.0.0")
 	HttpPort = server.Key("http_port").MustString("3000")
-	StaticRootPath = makeAbsolute(getStaticRootPath(server.Key("static_root_path").String()), HomePath)
 	RouterLogging = server.Key("router_logging").MustBool(false)
 	EnableGzip = server.Key("enable_gzip").MustBool(false)
 	EnforceDomain = server.Key("enforce_domain").MustBool(false)
+	StaticRootPath = makeAbsolute(server.Key("static_root_path").String(), HomePath)
+
+	if err := validateStaticRootPath(); err != nil {
+		return err
+	}
 
 	// read security settings
 	security := Cfg.Section("security")
@@ -455,6 +462,8 @@ func NewConfigContext(args *CommandLineArgs) {
 	if VerifyEmailEnabled && !Smtp.Enabled {
 		log.Warn("require_email_validation is enabled but smpt is disabled")
 	}
+
+	return nil
 }
 
 func readSessionConfig() {

+ 3 - 1
pkg/setting/setting_test.go

@@ -11,9 +11,11 @@ import (
 func TestLoadingSettings(t *testing.T) {
 
 	Convey("Testing loading settings from ini file", t, func() {
+		skipStaticRootValidation = true
 
 		Convey("Given the default ini files", func() {
-			NewConfigContext(&CommandLineArgs{HomePath: "../../"})
+			err := NewConfigContext(&CommandLineArgs{HomePath: "../../"})
+			So(err, ShouldBeNil)
 
 			So(AdminUser, ShouldEqual, "admin")
 		})

+ 4 - 6
public/app/controllers/signupCtrl.ts

@@ -1,10 +1,8 @@
-///<reference path="../headers/require/require.d.ts" />
-///<reference path="../headers/angularjs/angularjs.d.ts" />
-///<amd-dependency path="angular"/>
-///<amd-dependency path="config"/>
+///<reference path="../headers/common.d.ts" />
+///<amd-dependency path="config" name="config" />
 
-var angular = require('angular');
-var config = require('config');
+import angular = require('angular');
+declare var config : any;
 
 var module = angular.module('grafana.controllers');
 

+ 1 - 1
public/app/core/filters/filters.ts

@@ -1,5 +1,5 @@
 ///<reference path="../../headers/common.d.ts" />
-//
+
 import angular = require('angular');
 import jquery = require('jquery');
 import moment = require('moment');