Skip to content

Commit 7bde7d6

Browse files
authored
Add Kotlin Pages integration tests (#899)
Followup for #885
1 parent 3017e64 commit 7bde7d6

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package rs.wordpress.api.kotlin
2+
3+
import kotlinx.coroutines.test.runTest
4+
import org.junit.jupiter.api.Assertions.assertNull
5+
import org.junit.jupiter.api.Test
6+
import uniffi.wp_api.PageListParams
7+
import uniffi.wp_api.PageRetrieveParams
8+
import uniffi.wp_api.SparsePageFieldWithEditContext
9+
import uniffi.wp_api.WpErrorCode
10+
import kotlin.test.assertEquals
11+
import kotlin.test.assertNotNull
12+
13+
class PagesEndpointTest {
14+
private val testCredentials = TestCredentials.INSTANCE
15+
private val client = defaultApiClient()
16+
17+
@Test
18+
fun testPageListRequest() = runTest {
19+
val postList = client.request { requestBuilder ->
20+
requestBuilder.pages().listWithEditContext(params = PageListParams())
21+
}.assertSuccessAndRetrieveData().data
22+
assert(postList.isNotEmpty())
23+
}
24+
25+
@Test
26+
fun testRetrievePageRequest() = runTest {
27+
val post = client.request { requestBuilder ->
28+
requestBuilder.pages().retrieveWithEditContext(2, PageRetrieveParams())
29+
}.assertSuccessAndRetrieveData().data
30+
assertNotNull(post)
31+
}
32+
33+
@Test
34+
fun testFilterPageListRequest() = runTest {
35+
val pageList = client.request { requestBuilder ->
36+
requestBuilder.pages().filterListWithEditContext(
37+
params = PageListParams(),
38+
fields = listOf(
39+
SparsePageFieldWithEditContext.TITLE,
40+
SparsePageFieldWithEditContext.CONTENT
41+
)
42+
)
43+
}.assertSuccessAndRetrieveData().data
44+
assert(pageList.isNotEmpty())
45+
assertNull(pageList.first().slug)
46+
}
47+
48+
@Test
49+
fun testFilterRetrievePageRequest() = runTest {
50+
val sparsePage = client.request { requestBuilder ->
51+
requestBuilder.pages().filterRetrieveWithEditContext(
52+
pageId = 2,
53+
params = PageRetrieveParams(),
54+
fields = listOf(
55+
SparsePageFieldWithEditContext.TITLE,
56+
SparsePageFieldWithEditContext.CONTENT
57+
)
58+
)
59+
}.assertSuccessAndRetrieveData().data
60+
assertNotNull(sparsePage)
61+
assertNull(sparsePage.slug)
62+
}
63+
64+
@Test
65+
fun testErrorPageListRequestInvalidPageNumber() = runTest {
66+
val params = PageListParams(page = 99999999u)
67+
val result =
68+
client.request { requestBuilder -> requestBuilder.pages().listWithEditContext(params) }
69+
assert(result.wpErrorCode() is WpErrorCode.PostInvalidPageNumber)
70+
}
71+
72+
@Test
73+
fun testPageListPagination() = runTest {
74+
val firstPageResponse = client.request { requestBuilder ->
75+
requestBuilder.pages().listWithEditContext(params = PageListParams(perPage = 1u))
76+
}.assertSuccessAndRetrieveData()
77+
assert(firstPageResponse.data.isNotEmpty())
78+
val nextPageResponse = client.request { requestBuilder ->
79+
requestBuilder.pages().listWithEditContext(firstPageResponse.nextPageParams!!)
80+
}.assertSuccessAndRetrieveData()
81+
assert(nextPageResponse.data.isNotEmpty())
82+
val prevPageResponse = client.request { requestBuilder ->
83+
requestBuilder.pages().listWithEditContext(nextPageResponse.prevPageParams!!)
84+
}.assertSuccessAndRetrieveData()
85+
assert(prevPageResponse.data.isNotEmpty())
86+
}
87+
88+
@Test
89+
fun ensureDateGmtIsParsedCorrectly() = runTest {
90+
val page = client.request { requestBuilder ->
91+
requestBuilder.pages().retrieveWithEditContext(2, PageRetrieveParams())
92+
}.assertSuccessAndRetrieveData().data
93+
assertEquals(
94+
testCredentials.firstPostDateGmt,
95+
TestCredentials.UTC_DATE_FORMAT.format(page.dateGmt)
96+
)
97+
}
98+
}

0 commit comments

Comments
 (0)