aboutsummaryrefslogtreecommitdiff
path: root/tests/test_core.c
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-19 21:10:54 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-19 21:10:54 +0200
commitbeb52c4a2ca23f29dc992e145810a47241c7d43b (patch)
treeb8fff8dce1cb01d42a1783040d7270558831bd2e /tests/test_core.c
parent77c298b3b64f2493e509734df0084068ad24441f (diff)
downloadbokf-beb52c4a2ca23f29dc992e145810a47241c7d43b.tar.gz
bokf-beb52c4a2ca23f29dc992e145810a47241c7d43b.zip
årsredovisning: Information om året per räkenskapsår (schema v6)v0.1.34
Diffstat (limited to 'tests/test_core.c')
-rw-r--r--tests/test_core.c146
1 files changed, 145 insertions, 1 deletions
diff --git a/tests/test_core.c b/tests/test_core.c
index 0dfdd08..6cd7b18 100644
--- a/tests/test_core.c
+++ b/tests/test_core.c
@@ -398,11 +398,15 @@ int main(void)
"{\"org_nr\":\"559331-2126\",\"vat_nr\":\"SE559331212601\","
"\"address\":\"Lingonvägen 9\",\"postal_code\":\"192 48\","
"\"city\":\"Sollentuna\",\"email\":\"a@b.se\","
- "\"phone\":\"+46700000000\"}}",
+ "\"phone\":\"+46700000000\","
+ "\"description\":\"Konsultverksamhet inom it.\","
+ "\"shares\":25000}}",
g_session, (int)org_id));
CHECK_OK(d);
CHECK_STR(d, "result.vat_nr", "SE559331212601");
CHECK_STR(d, "result.org_nr", "559331-2126");
+ CHECK_STR(d, "result.description", "Konsultverksamhet inom it.");
+ CHECK(jint(d, "result.shares") == 25000);
yyjson_doc_free(d);
d = call(reqf("{\"v\":1,\"id\":\"8c\",\"cmd\":\"org.get\","
@@ -433,6 +437,71 @@ int main(void)
g_session, (int)org_id));
CHECK_OK(d);
CHECK_STR(d, "result.city", "Sollentuna");
+ CHECK_STR(d, "result.description", "Konsultverksamhet inom it.");
+ CHECK(jint(d, "result.shares") == 25000);
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8g\",\"cmd\":\"board.add\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":"
+ "{\"name\":\"Anders Bergsten\"}}",
+ g_session, (int)org_id));
+ CHECK_OK(d);
+ int64_t bm1 = jint(d, "result.id");
+ CHECK(bm1 > 0);
+ CHECK_STR(d, "result.title", "Styrelseledamot");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8h\",\"cmd\":\"board.add\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":"
+ "{\"name\":\"Saphira Bergsten\","
+ "\"title\":\"Styrelseledamot\"}}",
+ g_session, (int)org_id));
+ CHECK_OK(d);
+ int64_t bm2 = jint(d, "result.id");
+ CHECK(bm2 > 0);
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8i\",\"cmd\":\"board.list\","
+ "\"session\":\"%s\",\"org\":%d}",
+ g_session, (int)org_id));
+ CHECK_OK(d);
+ CHECK(yyjson_arr_size(jget(d, "result.items")) == 2);
+ CHECK_STR(d, "result.items.0.name", "Anders Bergsten");
+ CHECK_STR(d, "result.items.1.name", "Saphira Bergsten");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8j\",\"cmd\":\"board.update\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld,"
+ "\"title\":\"Suppleant\"}}",
+ g_session, (int)org_id, (long long)bm2));
+ CHECK_OK(d);
+ CHECK_STR(d, "result.title", "Suppleant");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8k\",\"cmd\":\"board.add\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"name\":\"\"}}",
+ g_session, (int)org_id));
+ CHECK_STR(d, "error.code", "INVALID_ARGS");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8l\",\"cmd\":\"board.update\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":999999,"
+ "\"name\":\"Ingen\"}}",
+ g_session, (int)org_id));
+ CHECK_STR(d, "error.code", "NOT_FOUND");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8m\",\"cmd\":\"board.remove\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld}}",
+ g_session, (int)org_id, (long long)bm2));
+ CHECK_OK(d);
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"8n\",\"cmd\":\"board.list\","
+ "\"session\":\"%s\",\"org\":%d}",
+ g_session, (int)org_id));
+ CHECK_OK(d);
+ CHECK(yyjson_arr_size(jget(d, "result.items")) == 1);
yyjson_doc_free(d);
d = call(reqf("{\"v\":1,\"id\":\"9\",\"cmd\":\"session.use_org\","
@@ -721,6 +790,81 @@ int main(void)
CHECK_STR(d, "error.code", "INVALID_ARGS");
yyjson_doc_free(d);
+ d = call(reqf("{\"v\":1,\"id\":\"46d\",\"cmd\":\"fiscal_year.update\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld,"
+ "\"events\":\"Inga väsentliga händelser.\","
+ "\"agm_date\":\"2026-06-04\","
+ "\"dividend_date\":\"2026-06-05\","
+ "\"employees\":\"1\",\"notes\":\"Revisor saknas.\"}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK_STR(d, "result.events", "Inga väsentliga händelser.");
+ CHECK_STR(d, "result.agm_date", "2026-06-04");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"46e\",\"cmd\":\"fiscal_year.get\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_OK(d);
+ CHECK(jint(d, "result.dividend_ore") == 123456);
+ CHECK_STR(d, "result.events", "Inga väsentliga händelser.");
+ CHECK_STR(d, "result.agm_date", "2026-06-04");
+ CHECK_STR(d, "result.dividend_date", "2026-06-05");
+ CHECK_STR(d, "result.employees", "1");
+ CHECK_STR(d, "result.notes", "Revisor saknas.");
+ yyjson_doc_free(d);
+
+ d = call(reqf("{\"v\":1,\"id\":\"46f\",\"cmd\":\"fiscal_year.update\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld,"
+ "\"agm_date\":\"2026-6-4\"}}",
+ g_session, (int)org_id, (long long)fy1));
+ CHECK_STR(d, "error.code", "INVALID_ARGS");
+ yyjson_doc_free(d);
+
+ /* a new year inherits the stable "Information om året" fields */
+ {
+ d = call(reqf("{\"v\":1,\"id\":\"46g\",\"cmd\":\"org.create\","
+ "\"session\":\"%s\",\"args\":{\"name\":\"Årskopia AB\"}}",
+ g_session));
+ CHECK_OK(d);
+ int64_t ocopy = jint(d, "result.id");
+ CHECK(ocopy > 0);
+ yyjson_doc_free(d);
+ d = call(reqf("{\"v\":1,\"id\":\"46h\",\"cmd\":\"fiscal_year.list\","
+ "\"session\":\"%s\",\"org\":%d}",
+ g_session, (int)ocopy));
+ CHECK_OK(d);
+ int64_t fysrc = jint(d, "result.items.0.id");
+ yyjson_doc_free(d);
+ d = call(reqf("{\"v\":1,\"id\":\"46i\",\"cmd\":\"fiscal_year.update\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld,"
+ "\"events\":\"E\",\"employees\":\"2\","
+ "\"notes\":\"N\",\"agm_date\":\"2026-06-04\","
+ "\"dividend_date\":\"2026-06-05\"}}",
+ g_session, (int)ocopy, (long long)fysrc));
+ CHECK_OK(d);
+ yyjson_doc_free(d);
+ d = call(reqf("{\"v\":1,\"id\":\"46j\",\"cmd\":\"fiscal_year.open\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"label\":"
+ "\"2027\",\"start_date\":\"2027-01-01\","
+ "\"end_date\":\"2027-12-31\"}}",
+ g_session, (int)ocopy));
+ CHECK_OK(d);
+ int64_t fynext = jint(d, "result.id");
+ yyjson_doc_free(d);
+ d = call(reqf("{\"v\":1,\"id\":\"46k\",\"cmd\":\"fiscal_year.get\","
+ "\"session\":\"%s\",\"org\":%d,\"args\":{\"id\":%lld}}",
+ g_session, (int)ocopy, (long long)fynext));
+ CHECK_OK(d);
+ CHECK_STR(d, "result.events", "E");
+ CHECK_STR(d, "result.employees", "2");
+ CHECK_STR(d, "result.notes", "N");
+ CHECK_STR(d, "result.agm_date", "");
+ CHECK_STR(d, "result.dividend_date", "");
+ CHECK(jint(d, "result.dividend_ore") == 0);
+ yyjson_doc_free(d);
+ }
+
/* sale: 1250.00 kr incl 25% moms */
d = call(reqf("{\"v\":1,\"id\":\"47\",\"cmd\":\"voucher.post\","
"\"session\":\"%s\",\"org\":%d,\"args\":{\"date\":"