chore: use MonitorRpcClient instead of deprecated MonitorClient #2022
GitHub Actions / Security Server system tests
failed
Feb 25, 2025 in 0s
127 passed, 3 failed and 2 skipped
❌ src/security-server/system-test/build/test-results/systemTest/TEST-org.niis.xroad.ss.test.SecurityServerUiBehavioralTest.xml
132 tests were completed in 872s with 127 passed, 3 failed and 2 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
org.niis.xroad.ss.test.SecurityServerUiBehavioralTest | 127✅ | 3❌ | 2⚪ | 872s |
❌ org.niis.xroad.ss.test.SecurityServerUiBehavioralTest
✅ Security server is initialized
✅ Default token is initialized
✅ Example #1.1
✅ Example #1.2
✅ Token edit page is navigable
✅ Example #1.1
✅ Example #1.2
✅ Add key wizard is navigable
✅ CSR can be deleted
✅ Generating multiple CSR for key
✅ Token PIN can be changed
✅ Inactive token can be deleted
✅ User can create API key with all privileges
✅ API key is created and revoked
✅ API key is created and edited
✅ User can only assign roles they have when creating/editing API key
✅ Security server address is update fails
✅ Timestamping service is selected and deleted
✅ Timestamping service is selected
✅ Add client was cancelled
✅ Example #1.1
✅ Add subsystem was cancelled
✅ Example #1.1
✅ Example #1.2
✅ Example #1.3
✅ New Subsystem is added, but management registration fails
✅ Example #1.1
✅ Example #1.2
✅ Certificate ordering is disabled when external account binding credentials are required but missing
✅ Certificate is ordered on existing CSR
✅ Example #1.1
✅ Example #1.2
✅ Example #1.3
✅ Example #1.4
✅ Example #1.5
✅ Example #1.6
✅ Local group is not added as it already exists
✅ Local groups are sorted by default
✅ Local groups are sorted by Description
✅ Local groups are filtered to "group"
✅ Local groups are filtered to "aaa-1"
✅ Local group aaa-1 is deleted
✅ Local group group-1 is edited
✅ Local group group-1 member is removed
✅ Client details are displayed
✅ Client Disable button is clicked
✅ Client Internal servers are configured
✅ Client service with invalid openApi spec is not added
✅ Client service with invalid openApi spec is not added
✅ Client service with openApi yaml spec is added
✅ Client service with openApi json spec is added
✅ Client service is edited
✅ Client service has access rights added to it
✅ Client service has one access rights removed
✅ Client service has all access rights removed
✅ Client service has new endpoint added to it
✅ Only manually added endpoints can be edited
✅ Manually added endpoints can be deleted
✅ Newly added services are enabled and one of them disabled
✅ Newly added service is edited
✅ Newly added service is deleted
✅ Client service with openApi 3.1 json is added
✅ Adding service with invalid openApi version fails
✅ Client service with Base Path is configured
✅ Client Rest service with duplicate service code is not added
✅ Client Rest service with duplicate url is not added
✅ Updating service url to duplicate url is not allowed
✅ Client service is edited
✅ Client service has access rights added to it
✅ Client service has one access rights removed
✅ Client service has all access rights removed
✅ Client service has new endpoint added to it
✅ Manually added endpoints can be edited
✅ Manually added endpoints can be deleted
✅ Newly added services are enabled and one of them disabled
✅ Newly added service is edited
✅ Newly added service is deleted
✅ Call REST listMethod
✅ Client WSDL service is configured
✅ Client WSDL service is not duplicated
✅ Client WSDL service is not valid
✅ Client WSDL service url does not respond
✅ Client WSDL service url is updated
✅ Client WSDL service service testOp1 is edited
✅ Client service has access rights added to it
✅ Client service access rights subjects search filter clearing restore initial state
✅ Client service has one access rights removed
✅ Client service has all access rights removed
✅ Newly added services are enabled and one of them disabled
✅ Newly added service is deleted
✅ Service is refreshed
✅ Multiple Service clients are added
✅ Service client list can be filtered and sorted
✅ Service client can be edited with additional access rights
✅ Service client can be can have all of its service codes removed and re-added
✅ Service client can be can have single service code removed
✅ Service client can have all of its service codes removed and member is not present anymore
✅ Service client is removed if its service is deleted
✅ Client List search
✅ Client List default sorting by name
✅ Client List sorting by ID desc
✅ Client List sorting by Status asc
✅ Configuration can be backed up and deleted
✅ Configuration backup can be downloaded and uploaded
✅ Already existing configuration backup is overwritten on upload
✅ Configuration can be restored from backup
✅ Configuration backups can be filtered
✅ System administrator sees only relevant pages
✅ Registration officer sees only relevant pages
✅ Security officer sees only relevant pages
✅ Observer sees only relevant pages
✅ Service administrator sees only relevant pages
✅ Invalid password is rejected
✅ Invalid username is rejected
✅ User is able to log out from security server
✅ Automatic logout happens when timeout passes
✅ Diagnostics checks are successful
✅ Message log encryption is enabled
✅ Administrator can download diagnostics report
⚪ Message log archive encryption should have per member configuration
✅ Proxymonitor responds with correct response for TotalPhysicalMemory
✅ Proxymonitor responds with correct response for XroadProcessDump
✅ Proxymonitor responds with correct response
✅ Proxymonitor responds with correct response for TotalPhysicalMemory request
✅ Messagelog contains metrics requests
✅ Retrieving Operational Data of Security Server
✅ Retrieving Health Data of Security Server
❌ Valid and registered AUTH key is forcibly enabled
Element not found {By.xpath: //div[@data-test='success-snackbar']}
❌ Healthcheck is fails when HSM is not operational
java.lang.AssertionError: Healthcheck is in error state: No certificate chain available in authentication key.
❌ Healthcheck is fails when signer is down
java.lang.AssertionError: Healthcheck is in error state: No certificate chain available in authentication key.
⚪ Healthcheck is fails when database is down
✅ Global conf sign keys rotation
Annotations
github-actions / Security Server system tests
org.niis.xroad.ss.test.SecurityServerUiBehavioralTest ► Valid and registered AUTH key is forcibly enabled
Failed test found in:
src/security-server/system-test/build/test-results/systemTest/TEST-org.niis.xroad.ss.test.SecurityServerUiBehavioralTest.xml
Error:
Element not found {By.xpath: //div[@data-test='success-snackbar']}
Raw output
Element not found {By.xpath: //div[@data-test='success-snackbar']}
Expected: visible
Screenshot: file:/home/runner/work/X-Road/X-Road/src/security-server/system-test/build/reports/test-automation/selenide-failures/1740465539434.0.png
Page source: file:/home/runner/work/X-Road/X-Road/src/security-server/system-test/build/reports/test-automation/selenide-failures/1740465539434.0.html
Timeout: 15 s.
Caused by: NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@data-test='success-snackbar']"}
at app//com.codeborne.selenide.impl.WebElementSource.createElementNotFoundError(WebElementSource.java:68)
at app//com.codeborne.selenide.impl.ElementFinder.createElementNotFoundError(ElementFinder.java:122)
at app//com.codeborne.selenide.impl.WebElementSource.handleError(WebElementSource.java:119)
at app//com.codeborne.selenide.impl.WebElementSource.checkConditionAndReturnElement(WebElementSource.java:102)
at app//com.codeborne.selenide.impl.WebElementSource.checkCondition(WebElementSource.java:78)
at app//com.codeborne.selenide.commands.Should.execute(Should.java:24)
at app//com.codeborne.selenide.FluentCommand.execute(FluentCommand.java:27)
at app//com.codeborne.selenide.FluentCommand.execute(FluentCommand.java:19)
at app//com.codeborne.selenide.commands.Commands.execute(Commands.java:160)
at app//com.codeborne.selenide.impl.SelenideElementProxy.dispatchAndRetry(SelenideElementProxy.java:131)
at app//com.codeborne.selenide.impl.SelenideElementProxy.invoke(SelenideElementProxy.java:83)
at app/jdk.proxy3/jdk.proxy3.$Proxy158.shouldBe(Unknown Source)
at app//org.niis.xroad.ss.test.ui.glue.KeyAndCertStepDefs.loginToken(KeyAndCertStepDefs.java:81)
at ✽.User logs in token: softToken-0 with PIN: Secret1234(classpath:behavior/02-addons/2400-ss-proxy-healthcheck.feature:16)
Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@data-test='success-snackbar']"}
(Session info: chrome=133.0.6943.53)
For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Build info: version: '4.28.0', revision: 'ac342546e9'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.5.0-1025-azure', java.version: '21.0.6'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [c72549cb9ce26e8589882ba201792b6d, findElement {using=xpath, value=//div[@data-test='success-snackbar']}]
Capabilities {acceptInsecureCerts: true, browserName: chrome, browserVersion: 133.0.6943.53, chrome: {chromedriverVersion: 133.0.6943.53 (9a80935019b0..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:35713}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(manual, http=127.0.0...., se:cdp: ws://localhost:35713/devtoo..., se:cdpVersion: 133.0.6943.53, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: accept, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Session ID: c72549cb9ce26e8589882ba201792b6d
at java.base@21.0.6/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base@21.0.6/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at app//org.openqa.selenium.remote.ErrorCodec.decode(ErrorCodec.java:167)
at app//org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:138)
at app//org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:50)
at app//org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:215)
at app//org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
at app//org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
at app//org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545)
at app//org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
at app//org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
at app//org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:368)
at app//org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:362)
at app//com.codeborne.selenide.impl.WebElementSelector.findElement(WebElementSelector.java:64)
at app//com.codeborne.selenide.impl.WebElementSelector.findElement(WebElementSelector.java:39)
at app//com.codeborne.selenide.impl.WebElementSelector.findElement(WebElementSelector.java:30)
at app//com.codeborne.selenide.impl.ElementFinder.getWebElement(ElementFinder.java:106)
at app//com.codeborne.selenide.impl.WebElementSource.checkConditionAndReturnElement(WebElementSource.java:91)
at app//com.codeborne.selenide.impl.WebElementSource.checkCondition(WebElementSource.java:78)
at app//com.codeborne.selenide.commands.Should.execute(Should.java:24)
at app//com.codeborne.selenide.FluentCommand.execute(FluentCommand.java:27)
at app//com.codeborne.selenide.FluentCommand.execute(FluentCommand.java:19)
at app//com.codeborne.selenide.commands.Commands.execute(Commands.java:160)
at app//com.codeborne.selenide.impl.SelenideElementProxy.dispatchAndRetry(SelenideElementProxy.java:131)
at app//com.codeborne.selenide.impl.SelenideElementProxy.invoke(SelenideElementProxy.java:83)
at app/jdk.proxy3/jdk.proxy3.$Proxy158.shouldBe(Unknown Source)
at app//org.niis.xroad.ss.test.ui.glue.KeyAndCertStepDefs.loginToken(KeyAndCertStepDefs.java:81)
at java.base@21.0.6/java.lang.reflect.Method.invoke(Method.java:580)
at app//io.cucumber.java.Invoker.doInvoke(Invoker.java:66)
at app//io.cucumber.java.Invoker.invoke(Invoker.java:24)
at app//io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java:47)
at app//io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:29)
at app//io.cucumber.core.runner.CoreStepDefinition.execute(CoreStepDefinition.java:66)
at app//io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63)
at app//io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)
at app//io.cucumber.core.runner.TestStep.executeStep(TestStep.java:81)
at app//io.cucumber.core.runner.TestStep.run(TestStep.java:53)
at app//io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:51)
at app//io.cucumber.core.runner.TestCase.run(TestCase.java:84)
at app//io.cucumber.core.runner.Runner.runPickle(Runner.java:75)
at app//io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.lambda$runTestCase$4(CucumberEngineExecutionContext.java:112)
at app//io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at app//io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at app//io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:136)
at app//io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.runTestCase(CucumberEngineExecutionContext.java:109)
at app//io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:168)
at app//io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:90)
at java.base@21.0.6/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base@21.0.6/java.util.ArrayList.forEach(ArrayList.java:1596)
github-actions / Security Server system tests
org.niis.xroad.ss.test.SecurityServerUiBehavioralTest ► Healthcheck is fails when HSM is not operational
Failed test found in:
src/security-server/system-test/build/test-results/systemTest/TEST-org.niis.xroad.ss.test.SecurityServerUiBehavioralTest.xml
Error:
java.lang.AssertionError: Healthcheck is in error state: No certificate chain available in authentication key.
Raw output
java.lang.AssertionError: Healthcheck is in error state: No certificate chain available in authentication key.
at org.niis.xroad.ss.test.addons.glue.ProxyHealthcheckStepDefs.lambda$validateHealthcheckNoErrors$0(ProxyHealthcheckStepDefs.java:80)
at org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.awaitility.core.SameThreadExecutorService.execute(SameThreadExecutorService.java:79)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:101)
at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1006)
at org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:790)
at org.niis.xroad.ss.test.addons.glue.ProxyHealthcheckStepDefs.assertWithWait(ProxyHealthcheckStepDefs.java:109)
at org.niis.xroad.ss.test.addons.glue.ProxyHealthcheckStepDefs.validateHealthcheckNoErrors(ProxyHealthcheckStepDefs.java:73)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at io.cucumber.java.Invoker.doInvoke(Invoker.java:66)
at io.cucumber.java.Invoker.invoke(Invoker.java:24)
at io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java:47)
at io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:29)
at io.cucumber.core.runner.CoreStepDefinition.execute(CoreStepDefinition.java:66)
at io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63)
at io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)
at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:81)
at io.cucumber.core.runner.TestStep.run(TestStep.java:53)
at io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:51)
at io.cucumber.core.runner.TestCase.run(TestCase.java:84)
at io.cucumber.core.runner.Runner.runPickle(Runner.java:75)
at io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.lambda$runTestCase$4(CucumberEngineExecutionContext.java:112)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:136)
at io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.runTestCase(CucumberEngineExecutionContext.java:109)
at io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:168)
at io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:90)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
github-actions / Security Server system tests
org.niis.xroad.ss.test.SecurityServerUiBehavioralTest ► Healthcheck is fails when signer is down
Failed test found in:
src/security-server/system-test/build/test-results/systemTest/TEST-org.niis.xroad.ss.test.SecurityServerUiBehavioralTest.xml
Error:
java.lang.AssertionError: Healthcheck is in error state: No certificate chain available in authentication key.
Raw output
java.lang.AssertionError: Healthcheck is in error state: No certificate chain available in authentication key.
at org.niis.xroad.ss.test.addons.glue.ProxyHealthcheckStepDefs.lambda$validateHealthcheckNoErrors$0(ProxyHealthcheckStepDefs.java:80)
at org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.awaitility.core.SameThreadExecutorService.execute(SameThreadExecutorService.java:79)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:101)
at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1006)
at org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:790)
at org.niis.xroad.ss.test.addons.glue.ProxyHealthcheckStepDefs.assertWithWait(ProxyHealthcheckStepDefs.java:109)
at org.niis.xroad.ss.test.addons.glue.ProxyHealthcheckStepDefs.validateHealthcheckNoErrors(ProxyHealthcheckStepDefs.java:73)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at io.cucumber.java.Invoker.doInvoke(Invoker.java:66)
at io.cucumber.java.Invoker.invoke(Invoker.java:24)
at io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java:47)
at io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:29)
at io.cucumber.core.runner.CoreStepDefinition.execute(CoreStepDefinition.java:66)
at io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63)
at io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)
at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:81)
at io.cucumber.core.runner.TestStep.run(TestStep.java:53)
at io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:51)
at io.cucumber.core.runner.TestCase.run(TestCase.java:84)
at io.cucumber.core.runner.Runner.runPickle(Runner.java:75)
at io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.lambda$runTestCase$4(CucumberEngineExecutionContext.java:112)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:136)
at io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.runTestCase(CucumberEngineExecutionContext.java:109)
at io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:168)
at io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:90)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Loading