diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_core.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/test_core.c b/tests/test_core.c index 5740db3..aa2bd4a 100644 --- a/tests/test_core.c +++ b/tests/test_core.c @@ -820,6 +820,35 @@ int main(void) CHECK(yyjson_arr_size(jget(d, "result.vouchers")) == 0); yyjson_doc_free(d); + /* eSKD: ISO-8859-1 XML for the momsdeklaration */ + d = call(reqf("{\"v\":1,\"id\":\"54e\",\"cmd\":\"report.vat_eskd\"," + "\"session\":\"%s\",\"org\":%d,\"args\":" + "{\"from\":\"2026-01-01\",\"to\":\"2026-01-31\"," + "\"upplysning\":\"BlÄ\"}}", + g_session, (int)org_id)); + CHECK_OK(d); + CHECK_STR(d, "result.org_nr", "559331-2126"); + CHECK_STR(d, "result.period", "202601"); + char *b64 = jstr(d, "result.content_base64"); + unsigned char *xmlb = NULL; + size_t xmll = 0; + CHECK(b64 && util_b64_decode(b64, strlen(b64), &xmlb, &xmll) == 0); + char *xml = xmalloc(xmll + 1); + memcpy(xml, xmlb, xmll); + xml[xmll] = '\0'; + free(xmlb); + CHECK(strstr(xml, "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>") != + NULL); + CHECK(strstr(xml, "<OrgNr>559331-2126</OrgNr>") != NULL); + CHECK(strstr(xml, "<Period>202601</Period>") != NULL); + CHECK(strstr(xml, "<ForsMomsEjAnnan>1000</ForsMomsEjAnnan>") != NULL); + CHECK(strstr(xml, "<MomsUtgHog>250</MomsUtgHog>") != NULL); + CHECK(strstr(xml, "<MomsBetala>250</MomsBetala>") != NULL); + CHECK(strstr(xml, "<TextUpplysningMoms>Bl\xe5</TextUpplysningMoms>") != + NULL); + free(xml); + yyjson_doc_free(d); + d = call(reqf("{\"v\":1,\"id\":\"54\",\"cmd\":\"report.trial_balance\"," "\"session\":\"%s\",\"org\":%d}", g_session, (int)org_id)); |
