diff --git a/server/AyaNova/Startup.cs b/server/AyaNova/Startup.cs index 43748019..13a090ff 100644 --- a/server/AyaNova/Startup.cs +++ b/server/AyaNova/Startup.cs @@ -98,7 +98,7 @@ namespace AyaNova bool LOG_SENSITIVE_DATA = false; #if (DEBUG) - LOG_SENSITIVE_DATA = true; + //LOG_SENSITIVE_DATA = true; #endif @@ -380,7 +380,7 @@ namespace AyaNova // ******************** TESTING WIPE DB ***************************** // //Set this to true to wipe the db and reinstall a trial license and re-seed the data - var TESTING_REFRESH_DB = true;//############################################################################################# + var TESTING_REFRESH_DB = false;//############################################################################################# #if (DEBUG) //TESTING diff --git a/test/raven-integration/User/UserCrud.cs b/test/raven-integration/User/UserCrud.cs index 637c2353..d8a632a3 100644 --- a/test/raven-integration/User/UserCrud.cs +++ b/test/raven-integration/User/UserCrud.cs @@ -324,7 +324,7 @@ namespace raven_integration var ObjectNameStart = Util.Uniquify("UserListFilterAndSortWorks"); - //CREATE 3 TEST WIDGETS TO TEST ORDER + //CREATE 3 TEST OBJECTS TO TEST ORDER long FirstInOrdertId = 0; long SecondInOrderId = 0; long ThirdInOrderId = 0; @@ -436,6 +436,120 @@ namespace raven_integration } + + + + /// + /// + /// + [Fact] + public async void UserPickListSortByFieldAscendingWorks() + { + + var NameStart = Util.Uniquify("UserPickListSortByFieldAscendingWorks"); + + //CREATE 3 TEST objects TO TEST ORDER + long FirstInOrderId = 0; + long SecondInOrderId = 0; + long ThirdInOrderId = 0; + + dynamic d = new JObject(); + d.name = Util.Uniquify(NameStart); + d.active = false; + d.login = Util.Uniquify("LOGIN"); + d.password = Util.Uniquify("PASSWORD"); + d.roles = 0;//norole + d.localeId = 1;//random locale + d.userType = 3;//non scheduleable + + ApiResponse a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + Util.ValidateDataReturnResponseOk(a); + ThirdInOrderId = a.ObjectResponse["data"]["id"].Value(); + + d = new JObject(); + d.name = Util.Uniquify(NameStart); + d.active = true; + d.login = Util.Uniquify("LOGIN"); + d.password = Util.Uniquify("PASSWORD"); + d.roles = 0;//norole + d.localeId = 1;//random locale + d.userType = 2;//non scheduleable + a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + Util.ValidateDataReturnResponseOk(a); + SecondInOrderId = a.ObjectResponse["data"]["id"].Value(); + + d = new JObject(); + d.name = Util.Uniquify(NameStart); + d.active = false; + d.login = Util.Uniquify("LOGIN"); + d.password = Util.Uniquify("PASSWORD"); + d.roles = 0;//norole + d.localeId = 1;//random locale + d.userType = 1;//non scheduleable + a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + Util.ValidateDataReturnResponseOk(a); + FirstInOrderId = a.ObjectResponse["data"]["id"].Value(); + + + //CREATE FILTER + d = new JObject(); + d.name = Util.Uniquify(NameStart); + d["public"] = true; + d.listKey = "user"; + + //FILTER IN BY NAME FOR TESTING THIS RUN ONLY + dynamic dfilter = new JArray(); + //name starts with filter to constrict to widgets that this test block created only + dynamic DataFilterNameStart = new JObject(); + DataFilterNameStart.fld = "name"; + DataFilterNameStart.op = Util.OpStartsWith; + DataFilterNameStart.value = NameStart; + dfilter.Add(DataFilterNameStart); + d.filter = dfilter.ToString(); + + //SORT ORDER ################### + dynamic dsortarray = new JArray(); + dynamic dsort = new JObject(); + dsort.fld = "usertype"; + dsort.dir = "+"; + dsortarray.Add(dsort); + d.sort = dsortarray.ToString(); + + a = await Util.PostAsync("DataFilter", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + Util.ValidateDataReturnResponseOk(a); + + long DataFilterId = a.ObjectResponse["data"]["id"].Value(); + + //NOW FETCH WIDGET LIST WITH FILTER + a = await Util.GetAsync($"User/picklist?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in")); + Util.ValidateDataReturnResponseOk(a); + Util.ValidateHTTPStatusCode(a, 200); + + //assert contains exactly 3 records + ((JArray)a.ObjectResponse["data"]).Count.Should().Be(3); + + //assert the order returned + a.ObjectResponse["data"][0]["id"].Value().Should().Be(FirstInOrderId); + a.ObjectResponse["data"][1]["id"].Value().Should().Be(SecondInOrderId); + a.ObjectResponse["data"][2]["id"].Value().Should().Be(ThirdInOrderId); + + + a = await Util.DeleteAsync("User/" + FirstInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + Util.ValidateHTTPStatusCode(a, 204); + + a = await Util.DeleteAsync("User/" + SecondInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + Util.ValidateHTTPStatusCode(a, 204); + + a = await Util.DeleteAsync("User/" + ThirdInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + Util.ValidateHTTPStatusCode(a, 204); + + //DELETE DATAFILTER + a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + Util.ValidateHTTPStatusCode(a, 204); + + } + + //================================================== }//eoc diff --git a/test/raven-integration/Widget/WidgetLists.cs b/test/raven-integration/Widget/WidgetLists.cs index c438da63..776003f3 100644 --- a/test/raven-integration/Widget/WidgetLists.cs +++ b/test/raven-integration/Widget/WidgetLists.cs @@ -18,10 +18,10 @@ namespace raven_integration /// /// [Fact] - public async void PickListSortByFieldAscendingWorks() + public async void WidgetPickListSortByFieldAscendingWorks() { - var WidgetNameStart = Util.Uniquify("PickListSortByFieldAscendingWorks"); + var WidgetNameStart = Util.Uniquify("WidgetPickListSortByFieldAscendingWorks"); //CREATE 3 TEST WIDGETS TO TEST ORDER long FirstInOrderWidgetId = 0; @@ -151,23 +151,26 @@ namespace raven_integration Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); a.ObjectResponse["data"]["key"].Value().Should().Be("widget"); - ((JArray)a.ObjectResponse["data"]["flds"]).Count.Should().Be(9); - a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Price"); + ((JArray)a.ObjectResponse["data"]["flds"]).Count.Should().Be(10); + + int DollarAmountFieldNumber = 4; + + a.ObjectResponse["data"]["flds"][DollarAmountFieldNumber]["lt"].Value().Should().Be("Price"); a = await Util.GetAsync("Widget/FilterOptions", await Util.GetTokenAsync("es", "es")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); - a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Importe"); + a.ObjectResponse["data"]["flds"][DollarAmountFieldNumber]["lt"].Value().Should().Be("Importe"); a = await Util.GetAsync("Widget/FilterOptions", await Util.GetTokenAsync("fr", "fr")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); - a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Montant"); + a.ObjectResponse["data"]["flds"][DollarAmountFieldNumber]["lt"].Value().Should().Be("Montant"); a = await Util.GetAsync("Widget/FilterOptions", await Util.GetTokenAsync("de", "de")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); - a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Betrag"); + a.ObjectResponse["data"]["flds"][DollarAmountFieldNumber]["lt"].Value().Should().Be("Betrag"); }