mirror of
				https://github.com/aclindsa/moneygo.git
				synced 2025-10-30 01:23:26 -04:00 
			
		
		
		
	testing: Test Lua accounts
This commit is contained in:
		
							
								
								
									
										77
									
								
								internal/handlers/accounts_lua_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								internal/handlers/accounts_lua_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | |||||||
|  | package handlers_test | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"strconv" | ||||||
|  | 	"strings" | ||||||
|  | 	"testing" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func TestLuaAccounts(t *testing.T) { | ||||||
|  | 	RunWith(t, &data[0], func(t *testing.T, d *TestData) { | ||||||
|  | 		accounts, err := getAccounts(d.clients[0]) | ||||||
|  | 		if err != nil { | ||||||
|  | 			t.Fatalf("Error getting accounts: %s", err) | ||||||
|  | 		} | ||||||
|  | 		accountids := make(Int64Slice, len(*accounts.Accounts)) | ||||||
|  | 		for i, s := range *accounts.Accounts { | ||||||
|  | 			accountids[i] = s.AccountId | ||||||
|  | 		} | ||||||
|  | 		accountids.Sort() | ||||||
|  |  | ||||||
|  | 		equalityString := "" | ||||||
|  | 		for i, _ := range accountids { | ||||||
|  | 			for j, _ := range accountids { | ||||||
|  | 				if i == j { | ||||||
|  | 					equalityString += "true" | ||||||
|  | 				} else { | ||||||
|  | 					equalityString += "false" | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		id := d.accounts[3].AccountId | ||||||
|  | 		simpleLuaTest(t, d.clients[0], []LuaTest{ | ||||||
|  | 			{"SecurityId", fmt.Sprintf("return get_accounts()[%d].SecurityId", id), strconv.FormatInt(d.accounts[3].SecurityId, 10)}, | ||||||
|  | 			{"Security", fmt.Sprintf("return get_accounts()[%d].Security.SecurityId", id), strconv.FormatInt(d.accounts[3].SecurityId, 10)}, | ||||||
|  | 			{"Parent", fmt.Sprintf("return get_accounts()[%d].Parent.AccountId", id), strconv.FormatInt(d.accounts[3].ParentAccountId, 10)}, | ||||||
|  | 			{"Name", fmt.Sprintf("return get_accounts()[%d].Name", id), d.accounts[3].Name}, | ||||||
|  | 			{"Type", fmt.Sprintf("return get_accounts()[%d].Type", id), strconv.FormatInt(int64(d.accounts[3].Type), 10)}, | ||||||
|  | 			{"TypeName", fmt.Sprintf("return get_accounts()[%d].TypeName", id), d.accounts[3].Type.String()}, | ||||||
|  | 			{"typename", fmt.Sprintf("return get_accounts()[%d].typename", id), strings.ToLower(d.accounts[3].Type.String())}, | ||||||
|  | 			{"Balance()", fmt.Sprintf("return get_accounts()[%d]:Balance().Amount", id), "87.19"}, | ||||||
|  | 			{"Balance(1)", fmt.Sprintf("return get_accounts()[%d]:Balance(date.new('2017-10-30')).Amount", id), "5.6"}, | ||||||
|  | 			{"Balance(2)", fmt.Sprintf("return get_accounts()[%d]:Balance(date.new('2017-10-30'), date.new('2017-11-01')).Amount", id), "81.59"}, | ||||||
|  | 			{"__tostring", fmt.Sprintf("return get_accounts()[%d]", id), "Expenses/Groceries"}, | ||||||
|  | 			{"__eq", ` | ||||||
|  | accounts = get_accounts() | ||||||
|  | sorted = {} | ||||||
|  | for id in pairs(accounts) do | ||||||
|  | 	table.insert(sorted, id) | ||||||
|  | end | ||||||
|  | str = "" | ||||||
|  | table.sort(sorted) | ||||||
|  | for i,idi in ipairs(sorted) do | ||||||
|  | 	for j,idj in ipairs(sorted) do | ||||||
|  | 		if accounts[idi] == accounts[idj] then | ||||||
|  | 			str = str .. "true" | ||||||
|  | 		else | ||||||
|  | 			str = str .. "false" | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  | return str`, equalityString}, | ||||||
|  | 			{"get_accounts()", ` | ||||||
|  | sorted = {} | ||||||
|  | for id in pairs(get_accounts()) do | ||||||
|  | 	table.insert(sorted, id) | ||||||
|  | end | ||||||
|  | table.sort(sorted) | ||||||
|  | str = "[" | ||||||
|  | for i,id in ipairs(sorted) do | ||||||
|  | 	str = str .. id .. " " | ||||||
|  | end | ||||||
|  | return string.sub(str, 1, -2) .. "]"`, fmt.Sprint(accountids)}, | ||||||
|  | 		}) | ||||||
|  | 	}) | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user