aboutsummaryrefslogtreecommitdiff
path: root/tests/test_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_core.c')
-rw-r--r--tests/test_core.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/test_core.c b/tests/test_core.c
index 27948d6..5740db3 100644
--- a/tests/test_core.c
+++ b/tests/test_core.c
@@ -771,6 +771,55 @@ int main(void)
CHECK(vat_box(d, "10") == 25000);
yyjson_doc_free(d);
+ /* huvudbok: one account block per account with activity or IB */
+ d = call(reqf("{\"v\":1,\"id\":\"54a\",\"cmd\":\"report.general_ledger\""
+ ",\"session\":\"%s\",\"org\":%d,\"args\":"
+ "{\"fiscal_year\":%lld}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK(yyjson_arr_size(jget(d, "result.accounts")) == 3);
+ CHECK(find_amount(d, "result.accounts", "account", "1930", "debit_ore") ==
+ 125000);
+ CHECK(find_amount(d, "result.accounts", "account", "1930", "ub_ore") ==
+ 125000);
+ CHECK(find_amount(d, "result.accounts", "account", "3001", "ub_ore") ==
+ -100000);
+ CHECK(yyjson_arr_size(jget(d, "result.accounts.0.rows")) == 1);
+ CHECK(jint(d, "result.accounts.0.rows.0.saldo_ore") == 125000);
+ CHECK_STR(d, "result.last_voucher.series", "A");
+ CHECK(jint(d, "result.last_voucher.number") == 1);
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"54b\",\"cmd\":\"report.general_ledger\""
+ ",\"session\":\"%s\",\"org\":%d,\"args\":"
+ "{\"fiscal_year\":%lld,\"accounts\":[\"1930\"]}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK(yyjson_arr_size(jget(d, "result.accounts")) == 1);
+ yyjson_doc_free(d);
+
+ /* verifikationslista: vouchers with their rows and totals */
+ d = call(reqf("{\"v\":1,\"id\":\"54c\",\"cmd\":\"report.voucher_list\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":"
+ "{\"fiscal_year\":%lld}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK(yyjson_arr_size(jget(d, "result.vouchers")) == 1);
+ CHECK_STR(d, "result.vouchers.0.series", "A");
+ CHECK(jint(d, "result.vouchers.0.number") == 1);
+ CHECK(yyjson_arr_size(jget(d, "result.vouchers.0.rows")) == 3);
+ CHECK(jint(d, "result.totals.debit_ore") == 125000);
+ CHECK(jint(d, "result.totals.credit_ore") == 125000);
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"54d\",\"cmd\":\"report.voucher_list\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":"
+ "{\"fiscal_year\":%lld,\"series\":\"ZZ\"}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK(yyjson_arr_size(jget(d, "result.vouchers")) == 0);
+ yyjson_doc_free(d);
+
d = call(reqf("{\"v\":1,\"id\":\"54\",\"cmd\":\"report.trial_balance\","
"\"session\":\"%s\",\"org\":%d}",
g_session, (int)org_id));
@@ -1389,6 +1438,45 @@ int main(void)
CHECK_STR(d, "error.code", "FISCAL_YEAR_CLOSED");
yyjson_doc_free(d);
+ /* reopen is the owner-only undo */
+ d = call(reqf("{\"v\":1,\"id\":\"76\",\"cmd\":\"fiscal_year.reopen\","
+ "\"session\":\"%s\",\"org\":%d,\"dry_run\":true,"
+ "\"args\":{\"id\":%lld,\"confirm\":true}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK(jbool(d, "result.dry_run"));
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"77\",\"cmd\":\"fiscal_year.reopen\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld,"
+ "\"confirm\":true}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"78\",\"cmd\":\"fiscal_year.get\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK_STR(d, "result.status", "open");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"79\",\"cmd\":\"voucher.post\","
+ "\"session\":\"%s\",\"org\":%d,\"dry_run\":true,"
+ "\"args\":{\"date\":\"2026-03-01\",\"description\":\"Öppet\","
+ "\"rows\":[{\"account\":\"1930\",\"debit_ore\":100},"
+ "{\"account\":\"3001\",\"credit_ore\":100}]}}",
+ g_session, (int)org_id));
+ CHECK_OK(d);
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"79b\",\"cmd\":\"fiscal_year.reopen\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld,"
+ "\"confirm\":true}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_STR(d, "error.code", "NOT_FOUND");
+ yyjson_doc_free(d);
+
d = call(reqf("{\"v\":1,\"id\":\"75\",\"cmd\":\"audit.verify\","
"\"session\":\"%s\"}",
g_session));