Propagte mysql test datasource failure to UI. (#2001)

1. Propagte mysql test datasource failure exception message to UI.
2. Change build TC to reflect the same.
This commit is contained in:
Sumit Kumar 2020-12-02 17:53:38 +05:30 committed by GitHub
parent a900b48712
commit d347448b24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 7 deletions

View File

@ -356,7 +356,7 @@ public class MySqlPlugin extends BasePlugin {
.then(Mono.just(new DatasourceTestResult()))
.onErrorResume(error -> {
log.error("Error when testing MySQL datasource.", error);
return Mono.error(Exceptions.propagate(error));
return Mono.just(new DatasourceTestResult(error.getMessage()));
})
.subscribeOn(scheduler);

View File

@ -22,12 +22,11 @@ import reactor.test.StepVerifier;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertArrayEquals;
@Log4j
public class MySqlPluginTest {
@ -174,14 +173,18 @@ public class MySqlPluginTest {
public void testTestDatasource() {
/* Expect no error */
StepVerifier.create(pluginExecutor.testDatasource(dsConfig))
.expectNextCount(1)
.assertNext(datasourceTestResult -> {
assertEquals(0, datasourceTestResult.getInvalids().size());
})
.verifyComplete();
/* Create bad datasource configuration and expect error */
dsConfig.getEndpoints().get(0).setHost("badHost");
StepVerifier.create(pluginExecutor.testDatasource(dsConfig))
.expectError()
.verify();
.assertNext(datasourceTestResult -> {
assertNotEquals(0, datasourceTestResult.getInvalids().size());
})
.verifyComplete();
/* Reset dsConfig */
createDatasourceConfiguration();