Skip to content

Commit d9e6798

Browse files
authored
feat: Add "detail" parameter to CanvasesCreateResponse & CanvasesEditResponse (#1570)
* Add detail field to CanvasesCreateResponse feat: Add "title" parameter to CanvasesCreateResponse * feat: Add detail field to CanvasesEditResponse * Add error detail tests for canvases methods Added tests for error handling in canvases.create and canvases.edit methods. * Fix missing newline at end of CanvasesCreateResponse.java * chore: remove trailing empty line * revert import changes * add missing import * update test * chore: revert test changes
1 parent 2cd23c2 commit d9e6798

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesCreateResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class CanvasesCreateResponse implements SlackApiTextResponse {
1919

2020
private String canvasId;
2121

22+
private String detail;
2223
private ResponseMetadata responseMetadata;
2324

2425
}

slack-api-client/src/main/java/com/slack/api/methods/response/canvases/CanvasesEditResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class CanvasesEditResponse implements SlackApiTextResponse {
1717
private String provided;
1818
private transient Map<String, List<String>> httpResponseHeaders;
1919

20+
private String detail;
2021
private ResponseMetadata responseMetadata;
2122

2223
}

slack-api-client/src/test/java/test_with_remote_apis/methods/canvases_Test.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
import java.util.Arrays;
2525
import java.util.List;
2626

27+
import static org.hamcrest.CoreMatchers.containsString;
2728
import static org.hamcrest.CoreMatchers.is;
29+
import static org.hamcrest.CoreMatchers.notNullValue;
2830
import static org.hamcrest.CoreMatchers.nullValue;
2931
import static org.hamcrest.MatcherAssert.assertThat;
3032

@@ -160,4 +162,46 @@ public void standalone_canvases_error() throws Exception {
160162
);
161163
assertThat(creation.getError(), is("invalid_arguments"));
162164
}
165+
166+
@Test
167+
public void error_detail() throws Exception {
168+
MethodsClient client = slack.methods(botToken);
169+
170+
ConversationsCreateResponse newChannel = client.conversationsCreate(r1 -> r1.name("test-" + System.currentTimeMillis()));
171+
assertThat(newChannel.getError(), is(nullValue()));
172+
String channelId = newChannel.getChannel().getId();
173+
174+
Thread.sleep(500L); // To avoid occasional 500 errors
175+
176+
String invalidCanvasContent = "1. Text\n * Nested"; // mixing of ordered and unordered lists is not supported
177+
ConversationsCanvasesCreateResponse failedCreation = client.conversationsCanvasesCreate(r -> r
178+
.channelId(channelId)
179+
.documentContent(CanvasDocumentContent.builder()
180+
.markdown(invalidCanvasContent)
181+
.build())
182+
);
183+
assertThat(failedCreation.isOk(), is(false));
184+
assertThat(failedCreation.getError(), is("canvas_creation_failed"));
185+
assertThat(failedCreation.getDetail(), containsString("Unsupported list type"));
186+
187+
ConversationsCanvasesCreateResponse successfulCreation = client.conversationsCanvasesCreate(r -> r
188+
.channelId(channelId)
189+
.documentContent(CanvasDocumentContent.builder()
190+
.markdown("Correct MD")
191+
.build()
192+
)
193+
);
194+
assertThat(successfulCreation.getCanvasId(), is(notNullValue()));
195+
196+
CanvasesEditResponse editFailingResponse = client.canvasesEdit(r -> r
197+
.canvasId(successfulCreation.getCanvasId())
198+
.changes(Arrays.asList(CanvasDocumentChange.builder()
199+
.operation(CanvasEditOperation.REPLACE)
200+
.documentContent(CanvasDocumentContent.builder().markdown(invalidCanvasContent).build())
201+
.build()))
202+
);
203+
assertThat(editFailingResponse.isOk(), is(false));
204+
assertThat(editFailingResponse.getError(), is("canvas_editing_failed"));
205+
assertThat(editFailingResponse.getDetail(), containsString("Unsupported list type"));
206+
}
163207
}

0 commit comments

Comments
 (0)