diff options
| author | Anders Betts <anders.betts@gmail.com> | 2026-09-19 21:10:54 +0200 |
|---|---|---|
| committer | Anders Betts <anders.betts@gmail.com> | 2026-09-19 21:10:54 +0200 |
| commit | beb52c4a2ca23f29dc992e145810a47241c7d43b (patch) | |
| tree | b8fff8dce1cb01d42a1783040d7270558831bd2e /tests/test_core.c | |
| parent | 77c298b3b64f2493e509734df0084068ad24441f (diff) | |
| download | bokf-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.c | 146 |
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\":" |
