From 45f75595aea66b91bb1be3cb3b99e255aba6dede Mon Sep 17 00:00:00 2001
From: rafaelatc3sl <rpd17@c3sl>
Date: Thu, 25 Jul 2019 09:45:49 -0300
Subject: [PATCH] Issue #105: Update error messages

Signed-off-by: rafaelatc3sl <rpd17@c3sl>
---
 src/api/controllers/collect.spec.ts | 18 +++++++++---------
 src/api/controllers/collect.ts      |  7 ++++---
 src/api/controllers/data.spec.ts    |  4 ++--
 src/core/engine.spec.ts             |  2 +-
 src/core/engine.ts                  |  8 ++++----
 src/util/configParser.spec.ts       | 12 ++++++------
 src/util/configParser.ts            | 16 ++++++++--------
 7 files changed, 34 insertions(+), 33 deletions(-)

diff --git a/src/api/controllers/collect.spec.ts b/src/api/controllers/collect.spec.ts
index 9c57224d..c2e2e87d 100644
--- a/src/api/controllers/collect.spec.ts
+++ b/src/api/controllers/collect.spec.ts
@@ -111,7 +111,7 @@ describe("API collect controller", () => {
             .expect((res: any) => { 
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The source named 'thisisjustatest' was not found";
+                const error = "The source named 'thisisjustatest' was not found on Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
@@ -133,7 +133,7 @@ describe("API collect controller", () => {
         .expect((res: any) => {
             const message = "Query execution failed: " +
             "Could not construct query with the given parameters.";
-            const error = "The 'name' wasn't informed on json";
+            const error = "The 'name' wasn't informed on Source config file";
             expect(res.body).to.be.an("object");
             expect(res.body).to.have.property("message");
             expect(res.body.message).to.be.eql(message);
@@ -176,7 +176,7 @@ describe("API collect controller", () => {
             .expect((res: any) => {
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The value 'thisisjustatest' from 'sex' isn't listed on enumsex";
+                const error = "The value 'thisisjustatest' from 'sex' isn't listed on enumsex from Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
@@ -199,7 +199,7 @@ describe("API collect controller", () => {
             .expect((res: any) => {
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The value 'nope' from 'id' isn't a type integer";
+                const error = "The value 'nope' from 'id' isn't a type integer from Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
@@ -222,7 +222,7 @@ describe("API collect controller", () => {
 
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The value 'notafloat' from 'pricein' isn't a type float";
+                const error = "The value 'notafloat' from 'pricein' isn't a type float from Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
@@ -243,7 +243,7 @@ describe("API collect controller", () => {
             .expect((res: any) => {
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The value '5' from 'name' isn't a type string";
+                const error = "The value '5' from 'name' isn't a type string from Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
@@ -267,7 +267,7 @@ describe("API collect controller", () => {
 
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The value 'notaboolean' from 'Registered' isn't a type boolean";
+                const error = "The value 'notaboolean' from 'Registered' isn't a type boolean from Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
@@ -292,7 +292,7 @@ describe("API collect controller", () => {
 
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The value '1999-25-25' from 'Datein' isn't a type date";
+                const error = "The value '1999-25-25' from 'Datein' isn't a type date from Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
@@ -317,7 +317,7 @@ describe("API collect controller", () => {
 
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
-                const error = "The value '1999/12/12' from 'Datein' isn't a type date";
+                const error = "The value '1999/12/12' from 'Datein' isn't a type date from Source config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body.message).to.be.eql(message);
diff --git a/src/api/controllers/collect.ts b/src/api/controllers/collect.ts
index 8086a833..a9ada6ae 100644
--- a/src/api/controllers/collect.ts
+++ b/src/api/controllers/collect.ts
@@ -134,7 +134,7 @@ export class CollectCtrl {
                 // then it'll test if it's empty
                 if (!(typeof(data[i]) === "boolean") && !data[i]){
                     throw new Error(
-                        "The '" + fields[i].name + "' wasn't informed on json");
+                        "The '" + fields[i].name + "' wasn't informed on Source config file");
                 }
             }
 
@@ -153,12 +153,13 @@ export class CollectCtrl {
                     if (!found) {
                         throw new Error(
                             "The value '" +  data[i] + "' from '" + fields[i].name +
-                            "' isn't listed on " + fields[i].enumType);
+                            "' isn't listed on " + fields[i].enumType + " from Source config file");
                     }
                 }else if (!validador[EnumHandler.stringfyDataType(fields[i].dataType)](data[i]) === true){
                         throw new Error(
                             "The value '" +  data[i] + "' from '" + fields[i].name +
-                            "' isn't a type " + [EnumHandler.stringfyDataType(fields[i].dataType)]);
+                            "' isn't a type " + [EnumHandler.stringfyDataType(fields[i].dataType)] +
+                            " from Source config file");
                 }
             }
         }
diff --git a/src/api/controllers/data.spec.ts b/src/api/controllers/data.spec.ts
index 2e1f58cb..90e2b30f 100644
--- a/src/api/controllers/data.spec.ts
+++ b/src/api/controllers/data.spec.ts
@@ -56,7 +56,7 @@ describe("API data controller", () => {
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
                 const error = "The metric named met:this:is:just:a:test" +
-                " was not found";
+                " was not found on Metric config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body).to.have.property("error");
@@ -75,7 +75,7 @@ describe("API data controller", () => {
                 const message = "Query execution failed: " +
                 "Could not construct query with the given parameters.";
                 const error = "The dimension named dim:this:is:just:a:test" +
-                " was not found";
+                " was not found on Dimension config file";
                 expect(res.body).to.be.an("object");
                 expect(res.body).to.have.property("message");
                 expect(res.body).to.have.property("error");
diff --git a/src/core/engine.spec.ts b/src/core/engine.spec.ts
index 70689834..fccddc3b 100644
--- a/src/core/engine.spec.ts
+++ b/src/core/engine.spec.ts
@@ -323,7 +323,7 @@ describe("engine class", () => {
         }
         catch (e){
             error = true;
-            expect(e.message).to.be.equal("The dataType named 'test' was not found");
+            expect(e.message).to.be.equal("The dataType named 'test' was not found on Enumtype config file");
         }
         expect(error);
     });
diff --git a/src/core/engine.ts b/src/core/engine.ts
index 799b736e..ec04bd0b 100644
--- a/src/core/engine.ts
+++ b/src/core/engine.ts
@@ -148,7 +148,7 @@ export class Engine {
         let result = this.metrics.find(metric => metric.name === name);
 
         if (!result) {
-            throw new Error("The metric named " + name + " was not found");
+            throw new Error("The metric named " + name + " was not found on Metric config file");
         }
 
         return result;
@@ -162,7 +162,7 @@ export class Engine {
         let result = this.enumTypes.find(EnumType => EnumType.name === name);
 
         if (!result) {
-            throw new Error("The dataType named '" + name + "' was not found");
+            throw new Error("The dataType named '" + name + "' was not found on Enumtype config file");
         }
 
         return result;
@@ -176,7 +176,7 @@ export class Engine {
         let result = this.sources.find(source => source.name === name);
 
         if (!result) {
-            throw new Error("The source named '" + name + "' was not found");
+            throw new Error("The source named '" + name + "' was not found on Source config file");
         }
 
         return result;
@@ -203,7 +203,7 @@ export class Engine {
         let result = this.dimensions.find(dimension => dimension.name === name);
 
         if (!result) {
-            throw new Error("The dimension named " + name + " was not found");
+            throw new Error("The dimension named " + name + " was not found on Dimension config file");
         }
 
         return result;
diff --git a/src/util/configParser.spec.ts b/src/util/configParser.spec.ts
index f31d5610..1db83759 100644
--- a/src/util/configParser.spec.ts
+++ b/src/util/configParser.spec.ts
@@ -56,7 +56,7 @@ describe("configParser utility library", () => {
         catch (e) {
             error = true;
             expect(e.message).to.be
-            .equal("[Parsing error] Non exist metric set to view " + opts.alias);
+            .equal("[Parsing error] Non exist metric: 'met:-1' set to view " + opts.alias + " on View config file");
         }
 
         expect(error).to.be.true;
@@ -77,7 +77,7 @@ describe("configParser utility library", () => {
         catch (e) {
             error = true;
             expect(e.message).to.be
-            .equal("[Parsing error] Non exist dimension set to view " + opts.alias);
+            .equal("[Parsing error] Non exist dimension: 'dim:-1', set to view " + opts.alias + " on View config file");
         }
 
         expect(error).to.be.true;
@@ -100,7 +100,7 @@ describe("configParser utility library", () => {
         catch (e) {
             error = true;
             expect(e.message).to.be
-            .equal("[Parsing error] Parent for subdimension " + opts.name + "  not found");
+            .equal("[Parsing error] Parent for subdimension " + opts.name + " not found on Dimension config file");
         }
 
         expect(error).to.be.true;
@@ -245,7 +245,7 @@ describe("configParser utility library", () => {
         catch (e) {
             error = true;
             expect(e.message).to.be
-            .equal("[Parsing error] DataType: '" + opts.dataType + "' does not exist on Dimension");
+            .equal("[Parsing error] DataType: '" + opts.dataType + "' does not exist on Dimension config file");
         }
         expect(error).to.be.true;
 
@@ -266,7 +266,7 @@ describe("configParser utility library", () => {
         catch (e) {
             error = true;
             expect(e.message).to.be
-            .equal("[Parsing error] DataType: '" + met.dataType + "' does not exist on Metric");
+            .equal("[Parsing error] DataType: '" + met.dataType + "' does not exist on Metric config file");
         }
         expect(error).to.be.true;
 
@@ -296,7 +296,7 @@ describe("configParser utility library", () => {
         catch (e) {
             error = true;
             expect(e.message).to.be
-            .equal("[Parsing error] EnumType: '" + sourc.fields[1].enumType + "' does not exist on Source");
+            .equal("[Parsing error] EnumType: '" + sourc.fields[1].enumType + "' does not exist on Source config file");
         }
         expect(error).to.be.true;
     });
diff --git a/src/util/configParser.ts b/src/util/configParser.ts
index 73e6d5b7..d7eb1f20 100644
--- a/src/util/configParser.ts
+++ b/src/util/configParser.ts
@@ -328,7 +328,7 @@ export class ConfigParser {
             }
 
             else {
-                throw new Error("[Parsing error] Non exist metric set to view " + opts.alias);
+                throw new Error("[Parsing error] Non exist metric: '" + opts.metrics[i] + "' set to view " + opts.alias + " on View config file");
             }
 
         }
@@ -339,7 +339,7 @@ export class ConfigParser {
             }
 
             else {
-                throw new Error("[Parsing error] Non exist dimension set to view " + opts.alias);
+                throw new Error("[Parsing error] Non exist dimension: '" + opts.dimensions[i] + "', set to view " + opts.alias + " on View config file");
             }
         }
 
@@ -368,11 +368,11 @@ export class ConfigParser {
     public static parseDimOpts (opts: DimensionStrOptions, dims: Dimension[], map: EnumTypeMap): DimensionOptions {
         let type = EnumHandler.parseDataType(opts.dataType);
         if (type === DataType.NONE) {
-                throw new Error("[Parsing error] DataType: '" + opts.dataType + "' does not exist on Dimension");
+                throw new Error("[Parsing error] DataType: '" + opts.dataType + "' does not exist on Dimension config file");
         }
         else if (type === DataType.ENUMTYPE) {
             if (!(map[opts.enumType])) {
-                throw new Error("[Parsing error] EnumType: '" + opts.enumType + "' does not exist on Dimension");
+                throw new Error("[Parsing error] EnumType: '" + opts.enumType + "' does not exist on Enumtype config file");
             }
         }
         if (opts.parent || opts.relation) {
@@ -389,7 +389,7 @@ export class ConfigParser {
                 }
             }
 
-            throw new Error("[Parsing error] Parent for subdimension " + opts.name + "  not found");
+            throw new Error("[Parsing error] Parent for subdimension " + opts.name + " not found on Dimension config file");
         }
         return {
             name: opts.name,
@@ -409,7 +409,7 @@ export class ConfigParser {
         let type = EnumHandler.parseDataType(opts.dataType);
         if (!(type === DataType.FLOAT || type === DataType.INTEGER)){
 
-            throw new Error("[Parsing error] DataType: '" + opts.dataType + "' does not exist on Metric");
+            throw new Error("[Parsing error] DataType: '" + opts.dataType + "' does not exist on Metric config file");
 
         }
         return {
@@ -450,11 +450,11 @@ export class ConfigParser {
         for ( let k = 0; k  < opts.fields.length ; k++) {
             let type = EnumHandler.parseDataType(opts.fields[k].dataType);
             if (type === DataType.NONE) {
-                    throw new Error("[Parsing error] DataType: '" + opts.fields[k].dataType + "' does not exist on Source");
+                    throw new Error("[Parsing error] DataType: '" + opts.fields[k].dataType + "' does not exist on Source config file");
             }
             else if (type === DataType.ENUMTYPE){
                 if (!(map[opts.fields[k].enumType])){
-                    throw new Error("[Parsing error] EnumType: '" + opts.fields[k].enumType + "' does not exist on Source");
+                    throw new Error("[Parsing error] EnumType: '" + opts.fields[k].enumType + "' does not exist on Source config file");
                 }
             }
         }
-- 
GitLab