1
+ package rs.wordpress.api.kotlin
2
+
3
+ import kotlinx.coroutines.test.runTest
4
+ import org.junit.jupiter.api.Test
5
+ import uniffi.wp_api.TemplateCreateParams
6
+ import uniffi.wp_api.TemplateListParams
7
+ import uniffi.wp_api.TemplateUpdateParams
8
+ import uniffi.wp_api.SparseTemplateFieldWithEditContext
9
+ import uniffi.wp_api.SparseTemplateTitle
10
+ import uniffi.wp_api.SparseTemplateTitleWrapper
11
+ import uniffi.wp_api.WpErrorCode
12
+ import kotlin.test.assertEquals
13
+ import kotlin.test.assertNull
14
+
15
+ private const val TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE_SLUG : String = " single"
16
+ private const val TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE : String =
17
+ " twentytwentyfour//$TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE_SLUG "
18
+
19
+ class TemplatesEndpointTest {
20
+ private val client = defaultApiClient()
21
+
22
+ @Test
23
+ fun testTemplateListRequest () = runTest {
24
+ val templateList = client.request { requestBuilder ->
25
+ requestBuilder.templates().listWithEditContext(params = TemplateListParams ())
26
+ }.assertSuccessAndRetrieveData().data
27
+ assert (templateList.isNotEmpty())
28
+ }
29
+
30
+ @Test
31
+ fun testFilterTemplateListRequest () = runTest {
32
+ val templateList = client.request { requestBuilder ->
33
+ requestBuilder.templates().filterListWithEditContext(
34
+ params = TemplateListParams (),
35
+ fields = listOf (
36
+ SparseTemplateFieldWithEditContext .AUTHOR ,
37
+ SparseTemplateFieldWithEditContext .SLUG
38
+ )
39
+ )
40
+ }.assertSuccessAndRetrieveData().data
41
+ assert (templateList.isNotEmpty())
42
+ assertNull(templateList.first().description)
43
+ }
44
+
45
+ @Test
46
+ fun testRetrieveTemplateRequest () = runTest {
47
+ val template = client.request { requestBuilder ->
48
+ requestBuilder.templates().retrieveWithEditContext(TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE )
49
+ }.assertSuccessAndRetrieveData().data
50
+ assertEquals(TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE_SLUG , template.slug)
51
+ }
52
+
53
+ @Test
54
+ fun testFilterRetrieveTemplateRequest () = runTest {
55
+ val template = client.request { requestBuilder ->
56
+ requestBuilder.templates().filterRetrieveWithEditContext(
57
+ TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE ,
58
+ fields = listOf (
59
+ SparseTemplateFieldWithEditContext .AUTHOR ,
60
+ SparseTemplateFieldWithEditContext .SLUG
61
+ )
62
+ )
63
+ }.assertSuccessAndRetrieveData().data
64
+ assertEquals(TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE_SLUG , template.slug)
65
+ assertNull(template.description)
66
+ }
67
+
68
+ @Test
69
+ fun createTemplateRequest () = runTest {
70
+ val createdTemplate = client.request { requestBuilder ->
71
+ requestBuilder.templates()
72
+ .create(TemplateCreateParams (slug = " created_slug" , title = " new_title" ))
73
+ }.assertSuccessAndRetrieveData().data
74
+ assertEquals(" created_slug" , createdTemplate.slug)
75
+ assertEquals(
76
+ expected = SparseTemplateTitleWrapper .Object (
77
+ SparseTemplateTitle (
78
+ raw = " new_title" ,
79
+ rendered = " new_title"
80
+ )
81
+ ),
82
+ actual = createdTemplate.title
83
+ )
84
+ restoreTestServer()
85
+ }
86
+
87
+ @Test
88
+ fun deleteTemplateRequest () = runTest {
89
+ val deletedTemplate = client.request { requestBuilder ->
90
+ requestBuilder.templates()
91
+ .delete(templateId = TestCredentials .INSTANCE .integrationTestCustomTemplateId)
92
+ }.assertSuccessAndRetrieveData().data
93
+ assert (deletedTemplate.deleted)
94
+ restoreTestServer()
95
+ }
96
+
97
+ @Test
98
+ fun updateTemplateRequest () = runTest {
99
+ val updatedTemplate = client.request { requestBuilder ->
100
+ requestBuilder.templates()
101
+ .update(
102
+ templateId = TestCredentials .INSTANCE .integrationTestCustomTemplateId,
103
+ TemplateUpdateParams (
104
+ description = " new_description" ,
105
+ )
106
+ )
107
+ }.assertSuccessAndRetrieveData().data
108
+ assertEquals(" new_description" , updatedTemplate.description)
109
+ restoreTestServer()
110
+ }
111
+
112
+ @Test
113
+ fun testDeleteTemplateErrInvalidTemplate () = runTest {
114
+ val result =
115
+ client.request { requestBuilder ->
116
+ requestBuilder.templates().delete(TEMPLATE_TWENTY_TWENTY_FOUR_SINGLE )
117
+ }
118
+ assert (result.wpErrorCode() is WpErrorCode .InvalidTemplate )
119
+ }
120
+ }
0 commit comments