Skip to content

Commit 69a6dba

Browse files
authored
Merge branch 'main' into fix/empty_user_list_for_updating_usergroup_users_sets_group_as_having_no_members
2 parents 0a4265c + d9e6798 commit 69a6dba

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)