spec/features/rule_spec.rb in marty-1.2.8 vs spec/features/rule_spec.rb in marty-1.2.9

- old
+ new

@@ -92,49 +92,53 @@ time_fill_in(0, '11:03:01') date_fill_in(1, '2030-01-01') time_fill_in(1, '08:03:01') press("OK") wait_for_ajax - expect(mrv.row_count()).to eq(8) + expect(mrv.row_count()).to eq(9) expect(mrv.get_row_vals(1)).to include({"name"=>"abc", "rule_type"=>"SimpleRule", "start_dt"=>"2013-01-01T19:03:01.000Z", "end_dt"=>"2030-01-01T16:03:01.000Z", "other_flag"=>false, "g_array"=>"", "g_single"=>"", "g_string"=>"", "g_bool"=>nil, + "g_nullbool"=>"", + "g_bool_def"=>nil, + "g_nbool_def"=>"False", "g_range"=>nil, "g_integer"=>nil, + "g_has_default"=>"string default", "computed_guards"=>"", "grids"=>"", "results"=>"", }) r = Gemini::MyRule.lookup('infinity','abc') expect(r.as_json).to include({"user_id"=>1, "o_user_id"=>nil, "name"=>"abc", "engine"=>"Gemini::MyRuleScriptSet", "rule_type"=>"SimpleRule", - "simple_guards"=>{"g_has_default"=> + "simple_guards"=>{"g_bool"=>false, + "g_bool_def"=>false, + "g_nbool_def"=>false, + "g_has_default"=> "string default"}, "computed_guards"=>{}, "grids"=>{}, "results"=>{}, }) # type validation (string with values list) mrv.select_row(1) press("Edit") - fill_in(:g_string, with: "12345") - press("OK") - wait_for_ajax - expect(page).to have_content("Bad value '12345' for 'g_string'") # type validation (range) - fill_in(:g_string, with: "Hi Mom") + netzke_find("String list Guard", 'combobox').select_values("Hi Mom") click_checkbox("Bool Guard") click_checkbox("Other") + netzke_find("NullBool Guard", 'combobox').select_values("False") netzke_find('Array Guard', 'combobox').select_values("G1V1,G1V3") netzke_find('Single Guard', 'combobox').select_values("G2V2") fill_in(:g_integer, with: 123) fill_in(:g_range, with: "asfd") press("OK") @@ -142,10 +146,11 @@ expect(page).to have_content("Wrong type for 'g_range'") # validate rule fill_in(:g_range, with: "<=100") netzke_find('Grid1', 'combobox').select_values("DataGrid1") netzke_find('Grid2', 'combobox').select_values("DataGrid2") + fill_in("Defaulted String", with: "12345") press("OK") wait_for_ajax exp = {"name"=>"abc", "rule_type"=>"SimpleRule", "start_dt"=>"2013-01-01T19:03:01.000Z", @@ -153,24 +158,37 @@ "other_flag"=>true, "g_array"=>"G1V1,G1V3", "g_single"=>"G2V2", "g_string"=>"Hi Mom", "g_bool"=>true, + "g_nullbool"=>"False", "g_range"=>"<=100", "g_integer"=>123, + "g_has_default"=>"12345", "computed_guards"=>"", "grids"=>"{\"grid1\":\"DataGrid1\",\"grid2\":\"DataGrid2\"}", "results"=>"", } + r = Gemini::MyRule.lookup('infinity','abc') + expect(r.as_json["simple_guards"]["g_nullbool"]).to eq(false) expect(mrv.get_row_vals(1)).to include(exp) # grid edits press("Edit") netzke_find('Grid2', 'combobox').select_values("---") press("OK") wait_for_ajax expect(mrv.get_row_vals(1)).to include(exp+{"grids"=> "{\"grid1\":\"DataGrid1\"}"}) + press("Edit") + netzke_find("NullBool Guard", 'combobox').select_values("---") + press("OK") + wait_for_ajax + expect(mrv.get_row_vals(1)).to include(exp+{"g_nullbool"=>"", + "grids"=> + "{\"grid1\":\"DataGrid1\"}"}) + r = Gemini::MyRule.lookup('infinity','abc') + expect(r.as_json["simple_guards"]).not_to include('g_nullbool') # computed fields press("Edit") fill_in(:computed_guards, with: 'sadf asdf ljsf') press("OK") wait_for_ajax @@ -218,18 +236,20 @@ fill_in("Range Guard 1", with: "[100,200)") fill_in("Range Guard 2", with: "[30,40)") press("OK") r = Gemini::XyzRule.get_matches('infinity', {}, {"g_range1"=> 150, "g_range2"=> 35}) + expect(r.to_a.count).to eq(1) exp = {"user_id"=>1, "o_user_id"=>nil, "name"=>"ZRule1", "engine"=>"Gemini::XyzRuleScriptSet", "rule_type"=>"ZRule", "start_dt"=>DateTime.parse("2017-1-1 08:01:00"), - "simple_guards"=>{"g_date"=>"2017-1-1", + "simple_guards"=>{"g_bool"=>false, + "g_date"=>"2017-1-1", "g_range1"=>"[100,200)", "g_range2"=>"[30,40)", "g_string"=>"aaa", "g_integer"=>"5", "g_datetime"=>"2017-1-1 12:00:01"}, @@ -240,17 +260,17 @@ "bv"=>"base_value"}} expect(r.first.as_json).to include(exp) expect(xrv.col_values(:g_string, 5, 0)).to eq(["aaa", "bbb", "ccc", "ddd", "eee"]) - click_column(xrv, "G string") + click_column(xrv, "String list Guard") expect(xrv.col_values(:g_string, 5, 0)).to eq(["eee", "ddd", "ccc", "bbb", "aaa"]) - column_filter(xrv, "G string", "eee") + column_filter(xrv, "String list Guard", "eee") rc = xrv.row_count expect(xrv.col_values(:g_string,rc,0)).to eq(["eee"]) - column_filter_toggle(xrv, "G string") + column_filter_toggle(xrv, "String list Guard") rc = xrv.row_count expect(xrv.col_values(:g_string,rc,0)).to eq(["eee", "ddd", "ccc", "bbb", "aaa"]) column_filter(xrv, "Grids", "Grid1") rc = xrv.row_count @@ -291,12 +311,12 @@ expect(JSON.parse(gvs[names.index("ZRule2")])).to eq(g1h) go_to_my_rules wait_for_ajax - names = mrv.col_values(:name, 8, 0) - gvs = mrv.col_values(:grids, 8, 0) - rvs = mrv.col_values(:results, 8, 0) + names = mrv.col_values(:name, 9, 0) + gvs = mrv.col_values(:grids, 9, 0) + rvs = mrv.col_values(:results, 9, 0) expect(JSON.parse(gvs[names.index('abc')])).to eq(g1h) expect(JSON.parse(gvs[names.index('Rule2b')])).to eq(g1h + {"grid2"=>"DataGrid2"}) expect(JSON.parse(rvs[names.index('Rule5')])["other_grid"]).to eq( '"DataGrid4 new"')