MOSIP-44611 - Move the eSignet API Automation develop code to release-1.8.x branch#1663
Conversation
…-1.8.x branch Signed-off-by: Prathmesh Jadhav <prathmesh.j@cyberpwn.com>
WalkthroughThis PR refactors test infrastructure by replacing reflection-based test result manipulation with direct attribute setting, integrating JWT/JWS token handling in test validation, adding inter-dependency generation control via configuration flag, and extensively updating test case metadata with unique identifiers and dependency mappings across YAML configurations and test case interdependency files. Changes
Sequence DiagramsequenceDiagram
participant Test as Test Runner
participant Loader as Config Loader
participant TCS as Test Case Scripts
participant NL as NotificationListener
participant EUtil as EsignetUtil
participant Result as TestNG Result
Test->>Loader: Read generateDependencyJson flag
Loader-->>Test: Flag value
alt generateDependency = "yes"
Test->>TCS: Execute test cases
TCS->>NL: markRequestStart()
NL-->>TCS: Request watermarked
TCS->>EUtil: Extract & decode JWT tokens
EUtil-->>TCS: Token payload
TCS->>TCS: Validate payload vs output
TCS->>Result: setAttribute("TestCaseName", name)
TCS->>NL: markRequestRemove()
NL-->>TCS: Watermark cleared
else generateDependency = "no"
Test->>Test: Skip inter-dependency generation
end
Test->>Test: If generateDependency=yes
Test->>AdminTestUtil: generateTestCaseInterDependencies()
AdminTestUtil-->>Test: Dependencies created
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested reviewers
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
|
There was a problem hiding this comment.
Actionable comments posted: 13
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (5)
api-test/src/main/resources/esignet/LinkedAuthenticationOtp/LinkedAuthenticationOtp.yml (1)
308-308:⚠️ Potential issue | 🟡 MinorTypo in
outputTemplatevalue.The
outputTemplateis set toiesignetdp/errorbut should likely beesignet/errorto match all other test cases in this file.🐛 Proposed fix
- outputTemplate: iesignetdp/error + outputTemplate: esignet/error🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/LinkedAuthenticationOtp/LinkedAuthenticationOtp.yml` at line 308, The outputTemplate value in LinkedAuthenticationOtp.yml is a typo: it is set to "iesignetdp/error" but should match the other test cases; update the outputTemplate key in LinkedAuthenticationOtp.yml (the outputTemplate property for LinkedAuthenticationOtp) to "esignet/error" so it is consistent across the file and tests.api-test/src/main/resources/esignet/LinkedValidateBinding/LinkedValidateBinding.yml (2)
53-61:⚠️ Potential issue | 🟠 Major
Future_Val_requestTime_Negis no longer a future-date test.Line 61 hardcodes
2024-01-16T00:17:54.649Z, which is already in the past as of March 12, 2026. This now overlaps with the past-date negative case instead of exercising the future-timestamp validation path.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/LinkedValidateBinding/LinkedValidateBinding.yml` around lines 53 - 61, The test case ESignet_LinkedValidateBinding_Future_Val_requestTime_Neg is using a hardcoded past timestamp in the requestTime field, so update the input for that test (ESignet_LinkedValidateBinding_Future_Val_requestTime_Neg) to supply a true future timestamp — either generate a dynamic future ISO8601 datetime at runtime or replace the hardcoded value with a far-future constant (e.g., year 2099) so the test exercises the future-timestamp validation path for the validate-binding endpoint.
138-157:⚠️ Potential issue | 🟠 MajorRemove duplicate YAML key—one test case will be silently dropped.
Lines 138 and 155 both define
ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg. In YAML, duplicate keys cause the first definition to be overwritten, losing the test case at line 138 along with itsuniqueIdentifier: TC_ESignet_LinkedValidateBinding_09.Rename one of the keys to preserve both test cases. For example, rename the second occurrence at line 155 to
ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg_2or update itsuniqueIdentifierto reflect a distinct test case.Affected code snippet
ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg: endPoint: /v1/esignet/linked-authorization/validate-binding uniqueIdentifier: TC_ESignet_LinkedValidateBinding_09 role: resident restMethod: post inputTemplate: esignet/LinkedValidateBinding/LinkedValidateBinding outputTemplate: esignet/LinkedValidateBinding/LinkedValidateBindingResult input: '{ "requestTime": "$TIMESTAMP$", "TransactionId": "$ef4!", "individualId": "" }' output: '{ }' ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg: endPoint: /v1/esignet/linked-authorization/validate-binding uniqueIdentifier: TC_ESignet_LinkedValidateBinding_10🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/LinkedValidateBinding/LinkedValidateBinding.yml` around lines 138 - 157, The YAML contains a duplicated top-level test key "ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg" which causes one test to be dropped; rename one of the duplicate keys (for example change the second occurrence to "ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg_2") and ensure its uniqueIdentifier (TC_ESignet_LinkedValidateBinding_09 / TC_ESignet_LinkedValidateBinding_10) remains accurate and distinct so both test cases are preserved; update any references to that test name if needed.api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithBodyAndQueryParamsForAutoGenId.java (1)
145-160:⚠️ Potential issue | 🔴 CriticalCritical:
responseis never assigned, causing NullPointerException.The
responsefield is initialized tonull(line 44) and never assigned in thetest()method. TheauthUtil.updatePartnerCertificate()call on line 138 returns aString(stored instr), not aResponseobject.This creates multiple crash paths:
- Line 151:
response.getStatusCode()throws NPE when test case name contains"_StatusCode"but does not match"updatePartnerCertificate_StatusCode_"exactly- Lines 157, 159:
response.asString()andresponse.getStatusCode()throw NPE when test case name does not contain"_StatusCode"(the else branch)Only test cases with
"updatePartnerCertificate_StatusCode_"in the name will avoid the exception by using hardcoded"200"on line 149.Either assign
responsefrom the API call result or adjust the validation logic to work with thestrvariable returned fromupdatePartnerCertificate().🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithBodyAndQueryParamsForAutoGenId.java` around lines 145 - 160, The code in test() leaves the Response variable "response" null because authUtil.updatePartnerCertificate(...) returns a String stored in "str" instead of a Response, causing NPEs in the branches that call response.getStatusCode() or response.asString(); fix by replacing or augmenting the call to authUtil.updatePartnerCertificate(...) so it returns/assigns a Response (or call the appropriate method that returns a Response) and assign it to "response" before using it, or alternatively adapt the validation logic (the block that builds ouputValid and calls customStatusCodeResponse, OutputValidationUtil.doJsonOutputValidation, getJsonFromTemplate) to use the String "str" and a derived status code (e.g., parse status from the API wrapper or set 200 for successful flows) instead of calling response methods; update references in this method (test(), the ouputValid construction and customStatusCodeResponse usage) to use the chosen approach consistently.api-test/src/main/resources/esignet/Consent/OAuthDetailsRequestConsent/OAuthDetailsRequestConsent.yml (1)
137-170:⚠️ Potential issue | 🟠 MajorAdd explicit inline
additionalDependenciesto both User2 consent test cases to align with neighboring entries.Both
TC_ESignet_OAuthDetailsRequestConsent_06andTC_ESignet_OAuthDetailsRequestConsent_07reference a producer via$ID:CreateOIDCClient_Misp_Valid_Smoke_sid_clientId$but lack the inlineadditionalDependenciesdeclaration that all neighboring consent cases in this file explicitly define. This creates inconsistency and potential ambiguity since centralized dependency mappings reference different producers. Make dependencies explicit at the test case level to match the established pattern.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/Consent/OAuthDetailsRequestConsent/OAuthDetailsRequestConsent.yml` around lines 137 - 170, For both test cases ESignet_OAuthDetailsRequest_Consent_User2_all_Valid_Smoke_sid (uniqueIdentifier TC_ESignet_OAuthDetailsRequestConsent_06) and ESignet_OAuthDetailsRequest_Consent_Vid_User2_all_Valid_Smoke_sid (uniqueIdentifier TC_ESignet_OAuthDetailsRequestConsent_07) add an explicit inline additionalDependencies block that declares the producer referenced by the input token $ID:CreateOIDCClient_Misp_Valid_Smoke_sid_clientId$ (i.e., add additionalDependencies mapping for CreateOIDCClient_Misp_Valid_Smoke_sid so the test case explicitly depends on the OIDC client producer), matching the pattern used by adjacent consent entries.
🧹 Nitpick comments (17)
api-test/src/main/resources/esignet/DifferentScopeLanguageClaimsSce/Userinfo/GetOidcUserInfoResult.hbs (1)
1-8: Inconsistent indentation in JSON template.Line 3 uses a tab while other lines use spaces, and line 4's closing brace lacks indentation. Consider normalizing to 2-space indentation throughout for consistency with similar templates in this PR.
🔧 Suggested formatting fix
{ "header": { - "alg": "RS256" -}, + "alg": "RS256" + }, "payload": { "aud": "{{aud}}" } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/DifferentScopeLanguageClaimsSce/Userinfo/GetOidcUserInfoResult.hbs` around lines 1 - 8, The JSON Handlebars template uses a tab on the "alg" line and misaligned closing braces; normalize indentation to 2 spaces throughout and replace the tab with two spaces so keys like "header", "alg", "payload", and "aud" are consistently indented and closing braces align with their opening braces; update the template in GetOidcUserInfoResult.hbs to use 2-space indentation for all lines.api-test/src/main/resources/esignet/CreateOIDCClientV3/CreateOIDCClientV3PublicKeyNegSce.yml (3)
232-277: Test isolation issue:ktyis invalid inalg_emptytest.This test is intended to verify that empty
algreturnsinvalid_public_keyerror, butktyis set to"null"(Line 247), which is also an invalid value. When the test passes, it's unclear whether the error is caused by the emptyalgor the invalidkty.For proper test isolation, use a valid
ktyvalue so the error can be attributed specifically to the emptyalg.♻️ Proposed fix for test isolation
- "kty": "null", + "kty": "RSA",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/CreateOIDCClientV3/CreateOIDCClientV3PublicKeyNegSce.yml` around lines 232 - 277, The test case ESignet_CreateOIDCClientV3_alg_empty_Public_Neg currently uses an invalid kty ("null") which confounds the failure cause; update the input for the ESignet_CreateOIDCClientV3_alg_empty_Public_Neg test to use a valid key type (e.g., "kty": "RSA") while keeping "alg": "" so the observed invalid_public_key error can be attributed solely to the empty alg field.
278-323: Test isolation issue:ktyis invalid inuse_emptytest.Same issue as above - this test validates empty
usebutktyis set to"null"(Line 293), which is already invalid. The test cannot confirm if the error is due to emptyuseor invalidkty.♻️ Proposed fix for test isolation
- "kty": "null", + "kty": "RSA",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/CreateOIDCClientV3/CreateOIDCClientV3PublicKeyNegSce.yml` around lines 278 - 323, The test ESignet_CreateOIDCClientV3_use_empty_Public_Neg is trying to validate an empty "use" but currently sets kty to the invalid string "null", which confounds the failure cause; update the input payload for this test so kty is a valid key type (e.g., "RSA" or a valid JWK kty value) instead of "null" and keep "use": "" unchanged to isolate the empty-use validation; ensure the JSON field named kty in the test input is corrected in the CreateOIDCClientV3PublicKeyNegSce template so the only invalid field is use.
186-231: Consider fixingalgvalue for better test isolation.This test validates
kty: "null"(string) as an invalid value, butalgis also set to"RS"(Line 205), which is an incomplete/invalid algorithm. While the test will still produce the expected error, having two invalid values reduces test precision.♻️ Proposed fix
- "alg": "RS", + "alg": "RS256",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/CreateOIDCClientV3/CreateOIDCClientV3PublicKeyNegSce.yml` around lines 186 - 231, The test case ESignet_CreateOIDCClientV3_kty_Null_Public_Key_type_Neg currently has two invalid fields (kty set to "null" and alg set to "RS"); update the request payload in the input for this case so alg is a valid algorithm (e.g., "RS256") or remove the alg field entirely so the only invalid value is kty, ensuring the failure isolates the invalid public key type; locate the input block in CreateOIDCClientV3PublicKeyNegSce and change the "alg" value accordingly.api-test/src/main/resources/config/testCaseInterDependency_sunbirdrc.json (1)
2-29: Consider keeping the common OAuth-details prerequisite pair in one place.The same
["TC_ESignet_CreateOIDCClientV2SunBirdC_01", "TC_ESignet_CreatePolicySunBirdR_01"]tuple is now hand-copied across almost everyTC_ESignet_OAuthDetailsRequestSunBirdC*entry. That is easy to drift during future release-branch backports. If these cases always share the same base prerequisites, keep that pair in a single source of truth instead of repeating it per entry.Based on learnings, these dependencies can be managed either inline in YAML or through this centralized interdependency file.
Also applies to: 31-34, 36-39, 42-45, 50-53, 60-83, 85-98, 127-142, 151-154, 164-167, 176-179, 189-192, 208-219, 227-230
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/config/testCaseInterDependency_sunbirdrc.json` around lines 2 - 29, Several TC_ESignet_OAuthDetailsRequestSunBirdC* entries repeatedly copy the same prerequisite pair ["TC_ESignet_CreateOIDCClientV2SunBirdC_01", "TC_ESignet_CreatePolicySunBirdR_01"]; extract that pair into a single reusable dependency key (e.g., "COMMON_OAUTH_PREREQS") in this interdependency JSON and replace the repeated arrays in each TC_ESignet_OAuthDetailsRequestSunBirdC_* entry with a reference to that key (or the equivalent referencing mechanism your test runner supports), updating the loader/merge logic if necessary so TC_ESignet_CreateOIDCClientV2SunBirdC_01 and TC_ESignet_CreatePolicySunBirdR_01 are pulled from the single source of truth.api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithOnlyPathParam.java (1)
3-3: Consider removing unused imports.The
java.lang.reflect.Fieldimport (line 3) and the TestNG internal importsBaseTestMethodandTestResult(lines 21-22) appear to be unused after switching tosetAttribute(). Removing them would clean up the code.♻️ Suggested cleanup
-import java.lang.reflect.Field;-import org.testng.internal.BaseTestMethod; -import org.testng.internal.TestResult;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithOnlyPathParam.java` at line 3, Remove the now-unused imports to clean up PostWithOnlyPathParam: delete the java.lang.reflect.Field import and the TestNG internal imports BaseTestMethod and TestResult that remain after switching to setAttribute(); update the imports at the top of the PostWithOnlyPathParam class so only actually referenced packages remain.api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/GetWithQueryParam.java (1)
3-3: Consider removing unused imports.The
java.lang.reflect.Fieldimport (line 3) and TestNG internal importsBaseTestMethod,TestResult(lines 21-22) appear unused after the reflection removal.♻️ Suggested cleanup
-import java.lang.reflect.Field;-import org.testng.internal.BaseTestMethod; -import org.testng.internal.TestResult;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/GetWithQueryParam.java` at line 3, Remove the now-unused imports introduced for reflection and TestNG internals: delete the import for java.lang.reflect.Field and the TestNG imports BaseTestMethod and TestResult (they were added for reflection handling but are no longer referenced in the GetWithQueryParam class); run an import/compile check after removal to ensure no remaining references to those symbols.api-test/src/main/resources/esignet/OTPAuthFactorFlow/VerifiedClaims/Userinfo/GetOidcUserInfoResult.hbs (1)
1-8: Minor: Inconsistent indentation in JSON structure.The JWT template structure is correct, but has the same inconsistent indentation as the other HBS template—line 3 uses a tab while other lines use spaces.
♻️ Suggested formatting fix
{ "header": { - "alg": "RS256" -}, + "alg": "RS256" + }, "payload": { "aud": "{{aud}}" } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/OTPAuthFactorFlow/VerifiedClaims/Userinfo/GetOidcUserInfoResult.hbs` around lines 1 - 8, The JSON in the Handlebars template GetOidcUserInfoResult.hbs has inconsistent indentation where the "alg": "RS256" line uses a tab; replace that tab with spaces to match the surrounding indentation style (use the same number of spaces as other lines) so keys "header", "alg", "payload", and "aud" align consistently across the template.api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithBodyAndQueryParamsForAutoGenId.java (1)
3-3: Consider removing unused imports.Similar to other refactored test scripts, the
java.lang.reflect.Fieldimport (line 3) and TestNG internal importsBaseTestMethod,TestResult(lines 20-21) appear unused after the reflection removal.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithBodyAndQueryParamsForAutoGenId.java` at line 3, Remove the now-unused reflection and TestNG internal imports from the PostWithBodyAndQueryParamsForAutoGenId class: delete the import for java.lang.reflect.Field and the TestNG internal imports BaseTestMethod and TestResult so only required imports remain; search for these symbols in the file's import block and remove them (ensure no remaining references to Field, BaseTestMethod, or TestResult elsewhere in the class before committing).api-test/src/main/resources/esignet/OTPAuthFactorFlow/ConsentNoCapture/GenTokenConsentNoCapture/GenTokenConsentNoCaptureResult.hbs (1)
1-8: Minor: Inconsistent indentation in JSON structure.The template is functionally correct, but the indentation is inconsistent—line 3 uses a tab while lines 5-6 use spaces, and line 4's closing brace alignment differs from the structure.
♻️ Suggested formatting fix
{ "header": { - "alg": "PS256" -}, + "alg": "PS256" + }, "payload": { "aud": "{{aud}}" } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/OTPAuthFactorFlow/ConsentNoCapture/GenTokenConsentNoCapture/GenTokenConsentNoCaptureResult.hbs` around lines 1 - 8, The JSON template GenTokenConsentNoCaptureResult.hbs has inconsistent indentation (a tab before "alg": "PS256" while other lines use spaces and the closing brace alignment differs); fix by replacing the tab with the project’s standard spaces and align the closing braces so "alg" sits under "header" and "aud" under "payload" with consistent indentation (e.g., 2 or 4 spaces) for the "header"/"alg" and "payload"/"aud" blocks.api-test/src/main/resources/esignet/OTPAuthFactorFlow/WithoutVerifiedClaims/Userinfo/GetOidcUserInfoResult.hbs (1)
1-8: LGTM! JWT structure for user info response is appropriate.Using RS256 for user info responses is a valid choice. Similar to the other HBS template, there's a minor formatting inconsistency (tabs vs spaces) that could be addressed for consistency.
🔧 Suggested fix for consistent formatting
{ "header": { - "alg": "RS256" -}, + "alg": "RS256" + }, "payload": { "aud": "{{aud}}" } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/OTPAuthFactorFlow/WithoutVerifiedClaims/Userinfo/GetOidcUserInfoResult.hbs` around lines 1 - 8, The template GetOidcUserInfoResult.hbs has inconsistent indentation (mix of tabs and spaces) in the JSON structure (notably around the "header" block and its "alg" line); normalize indentation across the file by replacing tabs with the project's standard spaces (e.g., 2 or 4 spaces) so the "header" and "payload" objects align consistently with the rest of the HBS templates.api-test/src/main/resources/esignet/OTPAuthFactorFlow/WithoutVerifiedClaims/GenToken/GenerateTokenResult.hbs (1)
1-8: Minor formatting inconsistency in JSON template.The indentation is inconsistent - lines 3-4 use tabs while other lines use spaces. This doesn't affect functionality but could improve maintainability.
🔧 Suggested fix for consistent formatting
{ "header": { - "alg": "PS256" -}, + "alg": "PS256" + }, "payload": { "aud": "{{aud}}" } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/OTPAuthFactorFlow/WithoutVerifiedClaims/GenToken/GenerateTokenResult.hbs` around lines 1 - 8, The JSON Handlebars template GenerateTokenResult.hbs has mixed tabs and spaces causing inconsistent indentation; update the file so all indentation uses spaces (or all tabs) consistently—align the "header", its "alg": "PS256" entry, and the "payload" block with the same indentation style and level (ensure lines containing "header", "alg", "payload", and "aud" are consistently indented) to improve maintainability.api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/SimplePost.java (1)
3-3: Remove unused importsjava.lang.reflect.Field,org.testng.internal.BaseTestMethod, andorg.testng.internal.TestResult. These are not referenced anywhere in the file.🧹 Suggested cleanup
package io.mosip.testrig.apirig.esignet.testscripts; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List;import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; -import org.testng.internal.BaseTestMethod; -import org.testng.internal.TestResult;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/SimplePost.java` at line 3, Remove the unused imports from SimplePost: delete the import lines for java.lang.reflect.Field, org.testng.internal.BaseTestMethod, and org.testng.internal.TestResult since none of those types are referenced in the class (look for the import statements at the top of SimplePost and remove them).api-test/src/main/resources/esignet/OIDCClientV2/OIDCClientV2.yml (1)
33-62: Consider updating descriptions for clarity (optional).The descriptions for all three test cases are identical: "To create OIDC Client V2 with all valid data". Consider making them more specific:
- Test 2 (
Misp): Could mention it uses a different JWK key ($OIDCJWKKEY3$)- Test 3 (
NonAuth): Could mention it uses a subset of ACR values (no linked-wallet, knowledge, id-token)This is purely for maintainability—the tests function correctly as-is.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/OIDCClientV2/OIDCClientV2.yml` around lines 33 - 62, Descriptions for the OIDC client tests are identical and should be made more specific for maintainability: update the description field for ESignet_CreateOIDCClient_Misp_Valid_Smoke_sid to mention it uses the alternative JWK ($OIDCJWKKEY3$) and update the description for the NonAuth variant (e.g., ESignet_CreateOIDCClient_NonAuth_Valid_Smoke_sid) to note it uses a subset of ACR values (omits linked-wallet, knowledge, id-token); locate and edit the description fields for these test entries so each clearly states the distinguishing input differences.api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PatchWithPathParamsAndBody.java (1)
101-109: Avoid routing by testcase-name prefix.This chooses base URL and auth mode from
testCaseName.contains("ESignet_"). A rename or a copied testcase without that prefix silently falls back to the cookie flow. An explicit XML/YAML flag would be safer.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PatchWithPathParamsAndBody.java` around lines 101 - 109, The code currently chooses between patchWithPathParamsBodyHeaderWithBearerToken and patchWithPathParamsBodyAndCookie by checking testCaseName.contains("ESignet_"), which is fragile; instead add an explicit flag or enum on TestCaseDTO (e.g., getAuthMode() or isEsignet()) or a provider field, populate it when parsing the test case, and branch on that flag; update this block to call patchWithPathParamsBodyHeaderWithBearerToken(tempUrl + testCaseDTO.getEndPoint(), ...) when testCaseDTO indicates ESignet/Bearer auth and otherwise call patchWithPathParamsBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), ...); ensure any test case parser that builds TestCaseDTO is updated to set the new flag/enum.api-test/src/main/java/io/mosip/testrig/apirig/esignet/utils/EsignetUtil.java (1)
863-883: Consider data-driving the OIDC JWK slot handling.Adding key 13/14 required another placeholder branch, constants, fields, flags, and accessors. This pattern is getting expensive to extend and easy to desynchronize; a small keyed resolver would make future additions much safer.
Also applies to: 1852-1869, 1908-2222
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/java/io/mosip/testrig/apirig/esignet/utils/EsignetUtil.java` around lines 863 - 883, The repeated per-slot branches for OIDC JWK placeholders (e.g., handling "$OIDCJWKKEY13$"/"$OIDCJWKKEY14$" with gettriggerESignetKeyGen37/38, settriggerESignetKeyGen37/38, OIDCJWK13/14 and JWKKeyUtil.generateAndCacheEncJWKKey/getJWKKey calls) should be replaced with a data-driven resolver: create a map/datastructure that binds each placeholder string to its OIDC key identifier (e.g., OIDCJWK13) and to a single trigger flag accessor (or a boolean field wrapper) so you can iterate over entries, check jsonString.contains(placeholder), then if trigger is true call JWKKeyUtil.generateAndCacheEncJWKKey(id) and clear the trigger, else call JWKKeyUtil.getJWKKey(id), and finally call replaceKeywordValue(jsonString, placeholder, jwkKey); update usages (including other duplicated regions) to use this loop-based resolver instead of duplicating blocks.api-test/src/main/resources/esignet/LinkedConsent/GetOidcUserInfoLinkedConsent/GetOidcUserInfoLinkedConsent.yml (1)
16-17: Consider adding a blank line between test case entries.Line 17 immediately follows line 16 without a separating blank line, unlike the spacing convention used in other test YAML files (e.g.,
GetLinkStatusConsent.ymlwhere entries are separated by blank lines). This is a minor readability/consistency concern.📝 Suggested formatting fix
output: '{ "aud": "$ID:CreateOIDCClient_all_Valid_Smoke_sid_clientId$" }' + ESignet_GetOidcUserInfo_LinkedConsent_Vid_IdpAccessToken_GetUserInfoJWS_Valid_Smoke_sid:🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@api-test/src/main/resources/esignet/LinkedConsent/GetOidcUserInfoLinkedConsent/GetOidcUserInfoLinkedConsent.yml` around lines 16 - 17, Add a blank line between YAML test case entries to match project spacing conventions: insert a single empty line between the closing '}' of the previous block and the next test key ESignet_GetOidcUserInfo_LinkedConsent_Vid_IdpAccessToken_GetUserInfoJWS_Valid_Smoke_sid so entries are visually separated and consistent with other files like GetLinkStatusConsent.yml.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@api-test/README.md`:
- Around line 162-166: The README uses a nonstandard glob `**` in the example
java -jar command (the apitest-esignet-**-jar-with-dependencies.jar token);
replace `**` with a single `*` or explicitly document filling in the exact JAR
version so the example becomes apitest-esignet-*-jar-with-dependencies.jar (or
instruct the user to substitute the exact version) to ensure the shell wildcard
works as intended.
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testrunner/MosipTestRunner.java`:
- Around line 188-191: The dependency-generation call is currently executed
unconditionally and can overwrite the shared dependency JSON after a failed run;
add a success guard so AdminTestUtil.generateTestCaseInterDependencies(...) runs
only when the test run completed without exceptions. Introduce a boolean flag
(e.g., runSuccessful) initialized false, set it true at the normal successful
end of the try block that executes tests, and change the condition to check
runSuccessful && "yes".equalsIgnoreCase(generateDependency) before calling
LOGGER.info and
AdminTestUtil.generateTestCaseInterDependencies(BaseTestCase.getTestCaseInterDependencyPath(EsignetUtil.getPluginName())).
Ensure the flag is not set in catch blocks so failures skip generation.
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/GetWithParam.java`:
- Around line 186-190: getJsonFromTemplate is currently called unconditionally
in GetWithParam.java which causes failures for _StatusCode test cases that pass
scalar outputs; move the getJsonFromTemplate(testCaseDTO.getOutput(),
testCaseDTO.getOutputTemplate()) call into the branch that handles
non-_StatusCode cases (i.e., after you check if
testCaseName.contains("_StatusCode") and the _GetUserInfoJWS_ branch), so that
when testCaseName.contains("_StatusCode") you call
customStatusCodeResponse(String.valueOf(response.getStatusCode()),
testCaseDTO.getOutput()) and only in the else branch create outputJson and then
run EsignetUtil.inputstringKeyWordHandeler(outputJson, testCaseName) before
continuing with the existing validation logic.
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/SimplePostForAutoGenIdForUrlEncoded.java`:
- Around line 199-205: The test currently decodes the JWT into payloadJson and
passes it directly to GlobalMethods.reportResponse which may leak sensitive
claims; instead, parse payloadJson (using AdminTestUtil.decodeBase64Url output)
and either extract only the specific assertion claims you need (e.g., "sub",
"exp" or whichever are under test) or redact sensitive keys (email, phone, uin,
etc.) before calling GlobalMethods.reportResponse; update the code around
DecodedJWT jwt = JWT.decode(token), headerJson/payloadJson creation and the
GlobalMethods.reportResponse call to supply the sanitized payload.
- Around line 183-219: The code overwrites the ouputValid map for each extracted
JWT so only the last token's validation is considered (and it can remain null if
no tokens exist); change the logic in the EsignetUtil.extractTokensFromResponse
handling to validate each token independently by calling
AdminTestUtil.decodeAndCombineJwt and
OutputValidationUtil.doJsonOutputValidation for every token and
accumulating/merging results into a single ouputValid collection (or
short-circuit and fail on first invalid) before calling Reporter.log and
OutputValidationUtil.publishOutputResult; ensure you still fallback to
validating the full responseBody when there are no tokens. Use the existing
symbols ouputValid, EsignetUtil.extractTokensFromResponse,
AdminTestUtil.decodeAndCombineJwt, OutputValidationUtil.doJsonOutputValidation,
Reporter.log and OutputValidationUtil.publishOutputResult to locate and update
the code.
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/utils/EsignetUtil.java`:
- Around line 2592-2614: The extractTokensFromResponse method currently assumes
responseBody is JSON and calls new JSONObject(...) which can throw
JSONException; wrap the JSON parsing in a try/catch and handle parse failures by
treating compact token bodies as valid tokens: if the raw responseBody looks
like a JWT/JWS/JWE (e.g., contains two '.' separators or matches a simple JWT
regex) or is a non-empty plain token string, return a List containing
responseBody; otherwise rethrow as an AdminTestException (include the original
exception message/cause). Update references in extractTokensFromResponse to
perform the JSON parse inside the try block and to fall back to the
compact-token/plain-token logic in the catch, ensuring all failure paths throw
AdminTestException.
In `@api-test/src/main/resources/config/testCaseInterDependency_sunbirdrc.json`:
- Line 111: The dependency is incorrect: remove the consumer dependency
"TC_ESignet_GetPolicySunBirdR_01" from the "TC_ESignet_SearchPolicySunBirdR_01"
entry and instead reference the producer test that creates policies (replace the
array value with the appropriate producer test case ID that seeds policies,
e.g., the CreatePolicy producer test). Update the mapping for
TC_ESignet_SearchPolicySunBirdR_01 so it depends on the policy producer test
case rather than the GetPolicy consumer to ensure SearchPolicy runs when
policies exist.
In
`@api-test/src/main/resources/esignet/DifferentScopeLanguageClaimsSce/Authenticate/AuthenticateUser.yml`:
- Line 2: The producer scenario
ESignet_OAuthDetailsRequest_DifferScope_V3_AuthToken_Xsrf_sid currently returns
an empty JSON and must be updated so the consumers can resolve
$ID:OAuthDetailsRequest_DifferScope_V3_AuthToken_Xsrf_sid_encodedResp$ and
$ID:OAuthDetailsRequest_DifferScope_V3_AuthToken_Xsrf_sid_transactionId$; modify
that scenario's output template to include populated fields "encodedResp" and
"transactionId" (with realistic sample values or templating that generates
them), or alternatively update the consumer references in AuthCode and
Authenticate to point to a different producer that emits those two fields.
In
`@api-test/src/main/resources/esignet/LinkAuthorizationCode/LinkAuthorizationCode.yml`:
- Line 10: The YAML references under the key additionalDependencies use the old
consent suite IDs TC_ESignet_LinkedAuthorizationConsent_*; update every
occurrence to the renamed IDs TC_ESignet_LinkedAuthConsent_* (e.g., change
additionalDependencies: TC_ESignet_LinkedAuthorizationConsent_01 to
additionalDependencies: TC_ESignet_LinkedAuthConsent_01) so the
LinkAuthorizationCode test cases correctly reference the producer consent flows;
apply the same renaming for all listed occurrences in this file (and any other
LinkAuthorizationCode blocks) to keep producer/consumer dependency sequencing
consistent.
In
`@api-test/src/main/resources/esignet/LinkedAuthenticationOtp/LinkedAuthenticationOtp.yml`:
- Line 454: The uniqueIdentifier value TC_ESignet_LinkedAuthenticationOtp_33
breaks the sequential numbering used by the surrounding test cases (e.g.,
TC_ESignet_LinkedAuthenticationOtp_15 and
TC_ESignet_LinkedAuthenticationOtp_16); update the uniqueIdentifier on the
offending test case to the next sequential ID (e.g.,
TC_ESignet_LinkedAuthenticationOtp_16 or appropriate next number) to restore
ordering, or if 33 is intentional add an inline YAML comment next to
uniqueIdentifier explaining the special numbering rationale so readers and
CI/reporting tools aren’t confused.
In
`@api-test/src/main/resources/esignet/PartialUpdateOIDCClient/PartialUpdateOIDCClient.hbs`:
- Line 5: The template emits encPublicKey raw which breaks JSON for string
inputs; update PartialUpdateOIDCClient.hbs so the encPublicKey field is emitted
as a properly quoted/escaped JSON string (e.g., use a Handlebars string
interpolation or a JSON-stringify helper instead of raw output) so
"encPublicKey" uses the quoted value for the encPublicKey variable rather than
unquoted raw insertion.
In
`@api-test/src/main/resources/esignet/PmsIntegration/UpdatePartnerCertificate/UpdatePartnerCertificate.yml`:
- Line 8: The inline additionalDependencies entry currently lists only
Dependent_Idrepo_uploadCACert_03,Dependent_Idrepo_uploadCACert_04 but must match
the centralized testCaseInterDependency_mosip-id.json which also includes
Dependent_Idrepo_createPartnerSelfRegistration_02 and
Dependent_Idrepo_uploadPartnerCert_02; update the additionalDependencies value
to include all four test IDs
(Dependent_Idrepo_createPartnerSelfRegistration_02,Dependent_Idrepo_uploadPartnerCert_02,Dependent_Idrepo_uploadCACert_03,Dependent_Idrepo_uploadCACert_04)
or remove the additionalDependencies line entirely so the file relies on the
centralized configuration; ensure the final change removes ambiguity about
precedence.
---
Outside diff comments:
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithBodyAndQueryParamsForAutoGenId.java`:
- Around line 145-160: The code in test() leaves the Response variable
"response" null because authUtil.updatePartnerCertificate(...) returns a String
stored in "str" instead of a Response, causing NPEs in the branches that call
response.getStatusCode() or response.asString(); fix by replacing or augmenting
the call to authUtil.updatePartnerCertificate(...) so it returns/assigns a
Response (or call the appropriate method that returns a Response) and assign it
to "response" before using it, or alternatively adapt the validation logic (the
block that builds ouputValid and calls customStatusCodeResponse,
OutputValidationUtil.doJsonOutputValidation, getJsonFromTemplate) to use the
String "str" and a derived status code (e.g., parse status from the API wrapper
or set 200 for successful flows) instead of calling response methods; update
references in this method (test(), the ouputValid construction and
customStatusCodeResponse usage) to use the chosen approach consistently.
In
`@api-test/src/main/resources/esignet/Consent/OAuthDetailsRequestConsent/OAuthDetailsRequestConsent.yml`:
- Around line 137-170: For both test cases
ESignet_OAuthDetailsRequest_Consent_User2_all_Valid_Smoke_sid (uniqueIdentifier
TC_ESignet_OAuthDetailsRequestConsent_06) and
ESignet_OAuthDetailsRequest_Consent_Vid_User2_all_Valid_Smoke_sid
(uniqueIdentifier TC_ESignet_OAuthDetailsRequestConsent_07) add an explicit
inline additionalDependencies block that declares the producer referenced by the
input token $ID:CreateOIDCClient_Misp_Valid_Smoke_sid_clientId$ (i.e., add
additionalDependencies mapping for CreateOIDCClient_Misp_Valid_Smoke_sid so the
test case explicitly depends on the OIDC client producer), matching the pattern
used by adjacent consent entries.
In
`@api-test/src/main/resources/esignet/LinkedAuthenticationOtp/LinkedAuthenticationOtp.yml`:
- Line 308: The outputTemplate value in LinkedAuthenticationOtp.yml is a typo:
it is set to "iesignetdp/error" but should match the other test cases; update
the outputTemplate key in LinkedAuthenticationOtp.yml (the outputTemplate
property for LinkedAuthenticationOtp) to "esignet/error" so it is consistent
across the file and tests.
In
`@api-test/src/main/resources/esignet/LinkedValidateBinding/LinkedValidateBinding.yml`:
- Around line 53-61: The test case
ESignet_LinkedValidateBinding_Future_Val_requestTime_Neg is using a hardcoded
past timestamp in the requestTime field, so update the input for that test
(ESignet_LinkedValidateBinding_Future_Val_requestTime_Neg) to supply a true
future timestamp — either generate a dynamic future ISO8601 datetime at runtime
or replace the hardcoded value with a far-future constant (e.g., year 2099) so
the test exercises the future-timestamp validation path for the validate-binding
endpoint.
- Around line 138-157: The YAML contains a duplicated top-level test key
"ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg" which causes one test
to be dropped; rename one of the duplicate keys (for example change the second
occurrence to "ESignet_LinkedValidateBinding_Invalid_TransactionId_Neg_2") and
ensure its uniqueIdentifier (TC_ESignet_LinkedValidateBinding_09 /
TC_ESignet_LinkedValidateBinding_10) remains accurate and distinct so both test
cases are preserved; update any references to that test name if needed.
---
Nitpick comments:
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/GetWithQueryParam.java`:
- Line 3: Remove the now-unused imports introduced for reflection and TestNG
internals: delete the import for java.lang.reflect.Field and the TestNG imports
BaseTestMethod and TestResult (they were added for reflection handling but are
no longer referenced in the GetWithQueryParam class); run an import/compile
check after removal to ensure no remaining references to those symbols.
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PatchWithPathParamsAndBody.java`:
- Around line 101-109: The code currently chooses between
patchWithPathParamsBodyHeaderWithBearerToken and
patchWithPathParamsBodyAndCookie by checking testCaseName.contains("ESignet_"),
which is fragile; instead add an explicit flag or enum on TestCaseDTO (e.g.,
getAuthMode() or isEsignet()) or a provider field, populate it when parsing the
test case, and branch on that flag; update this block to call
patchWithPathParamsBodyHeaderWithBearerToken(tempUrl +
testCaseDTO.getEndPoint(), ...) when testCaseDTO indicates ESignet/Bearer auth
and otherwise call patchWithPathParamsBodyAndCookie(ApplnURI +
testCaseDTO.getEndPoint(), ...); ensure any test case parser that builds
TestCaseDTO is updated to set the new flag/enum.
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithBodyAndQueryParamsForAutoGenId.java`:
- Line 3: Remove the now-unused reflection and TestNG internal imports from the
PostWithBodyAndQueryParamsForAutoGenId class: delete the import for
java.lang.reflect.Field and the TestNG internal imports BaseTestMethod and
TestResult so only required imports remain; search for these symbols in the
file's import block and remove them (ensure no remaining references to Field,
BaseTestMethod, or TestResult elsewhere in the class before committing).
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/PostWithOnlyPathParam.java`:
- Line 3: Remove the now-unused imports to clean up PostWithOnlyPathParam:
delete the java.lang.reflect.Field import and the TestNG internal imports
BaseTestMethod and TestResult that remain after switching to setAttribute();
update the imports at the top of the PostWithOnlyPathParam class so only
actually referenced packages remain.
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/SimplePost.java`:
- Line 3: Remove the unused imports from SimplePost: delete the import lines for
java.lang.reflect.Field, org.testng.internal.BaseTestMethod, and
org.testng.internal.TestResult since none of those types are referenced in the
class (look for the import statements at the top of SimplePost and remove them).
In
`@api-test/src/main/java/io/mosip/testrig/apirig/esignet/utils/EsignetUtil.java`:
- Around line 863-883: The repeated per-slot branches for OIDC JWK placeholders
(e.g., handling "$OIDCJWKKEY13$"/"$OIDCJWKKEY14$" with
gettriggerESignetKeyGen37/38, settriggerESignetKeyGen37/38, OIDCJWK13/14 and
JWKKeyUtil.generateAndCacheEncJWKKey/getJWKKey calls) should be replaced with a
data-driven resolver: create a map/datastructure that binds each placeholder
string to its OIDC key identifier (e.g., OIDCJWK13) and to a single trigger flag
accessor (or a boolean field wrapper) so you can iterate over entries, check
jsonString.contains(placeholder), then if trigger is true call
JWKKeyUtil.generateAndCacheEncJWKKey(id) and clear the trigger, else call
JWKKeyUtil.getJWKKey(id), and finally call replaceKeywordValue(jsonString,
placeholder, jwkKey); update usages (including other duplicated regions) to use
this loop-based resolver instead of duplicating blocks.
In `@api-test/src/main/resources/config/testCaseInterDependency_sunbirdrc.json`:
- Around line 2-29: Several TC_ESignet_OAuthDetailsRequestSunBirdC* entries
repeatedly copy the same prerequisite pair
["TC_ESignet_CreateOIDCClientV2SunBirdC_01",
"TC_ESignet_CreatePolicySunBirdR_01"]; extract that pair into a single reusable
dependency key (e.g., "COMMON_OAUTH_PREREQS") in this interdependency JSON and
replace the repeated arrays in each TC_ESignet_OAuthDetailsRequestSunBirdC_*
entry with a reference to that key (or the equivalent referencing mechanism your
test runner supports), updating the loader/merge logic if necessary so
TC_ESignet_CreateOIDCClientV2SunBirdC_01 and TC_ESignet_CreatePolicySunBirdR_01
are pulled from the single source of truth.
In
`@api-test/src/main/resources/esignet/CreateOIDCClientV3/CreateOIDCClientV3PublicKeyNegSce.yml`:
- Around line 232-277: The test case
ESignet_CreateOIDCClientV3_alg_empty_Public_Neg currently uses an invalid kty
("null") which confounds the failure cause; update the input for the
ESignet_CreateOIDCClientV3_alg_empty_Public_Neg test to use a valid key type
(e.g., "kty": "RSA") while keeping "alg": "" so the observed invalid_public_key
error can be attributed solely to the empty alg field.
- Around line 278-323: The test ESignet_CreateOIDCClientV3_use_empty_Public_Neg
is trying to validate an empty "use" but currently sets kty to the invalid
string "null", which confounds the failure cause; update the input payload for
this test so kty is a valid key type (e.g., "RSA" or a valid JWK kty value)
instead of "null" and keep "use": "" unchanged to isolate the empty-use
validation; ensure the JSON field named kty in the test input is corrected in
the CreateOIDCClientV3PublicKeyNegSce template so the only invalid field is use.
- Around line 186-231: The test case
ESignet_CreateOIDCClientV3_kty_Null_Public_Key_type_Neg currently has two
invalid fields (kty set to "null" and alg set to "RS"); update the request
payload in the input for this case so alg is a valid algorithm (e.g., "RS256")
or remove the alg field entirely so the only invalid value is kty, ensuring the
failure isolates the invalid public key type; locate the input block in
CreateOIDCClientV3PublicKeyNegSce and change the "alg" value accordingly.
In
`@api-test/src/main/resources/esignet/DifferentScopeLanguageClaimsSce/Userinfo/GetOidcUserInfoResult.hbs`:
- Around line 1-8: The JSON Handlebars template uses a tab on the "alg" line and
misaligned closing braces; normalize indentation to 2 spaces throughout and
replace the tab with two spaces so keys like "header", "alg", "payload", and
"aud" are consistently indented and closing braces align with their opening
braces; update the template in GetOidcUserInfoResult.hbs to use 2-space
indentation for all lines.
In
`@api-test/src/main/resources/esignet/LinkedConsent/GetOidcUserInfoLinkedConsent/GetOidcUserInfoLinkedConsent.yml`:
- Around line 16-17: Add a blank line between YAML test case entries to match
project spacing conventions: insert a single empty line between the closing '}'
of the previous block and the next test key
ESignet_GetOidcUserInfo_LinkedConsent_Vid_IdpAccessToken_GetUserInfoJWS_Valid_Smoke_sid
so entries are visually separated and consistent with other files like
GetLinkStatusConsent.yml.
In `@api-test/src/main/resources/esignet/OIDCClientV2/OIDCClientV2.yml`:
- Around line 33-62: Descriptions for the OIDC client tests are identical and
should be made more specific for maintainability: update the description field
for ESignet_CreateOIDCClient_Misp_Valid_Smoke_sid to mention it uses the
alternative JWK ($OIDCJWKKEY3$) and update the description for the NonAuth
variant (e.g., ESignet_CreateOIDCClient_NonAuth_Valid_Smoke_sid) to note it uses
a subset of ACR values (omits linked-wallet, knowledge, id-token); locate and
edit the description fields for these test entries so each clearly states the
distinguishing input differences.
In
`@api-test/src/main/resources/esignet/OTPAuthFactorFlow/ConsentNoCapture/GenTokenConsentNoCapture/GenTokenConsentNoCaptureResult.hbs`:
- Around line 1-8: The JSON template GenTokenConsentNoCaptureResult.hbs has
inconsistent indentation (a tab before "alg": "PS256" while other lines use
spaces and the closing brace alignment differs); fix by replacing the tab with
the project’s standard spaces and align the closing braces so "alg" sits under
"header" and "aud" under "payload" with consistent indentation (e.g., 2 or 4
spaces) for the "header"/"alg" and "payload"/"aud" blocks.
In
`@api-test/src/main/resources/esignet/OTPAuthFactorFlow/VerifiedClaims/Userinfo/GetOidcUserInfoResult.hbs`:
- Around line 1-8: The JSON in the Handlebars template GetOidcUserInfoResult.hbs
has inconsistent indentation where the "alg": "RS256" line uses a tab; replace
that tab with spaces to match the surrounding indentation style (use the same
number of spaces as other lines) so keys "header", "alg", "payload", and "aud"
align consistently across the template.
In
`@api-test/src/main/resources/esignet/OTPAuthFactorFlow/WithoutVerifiedClaims/GenToken/GenerateTokenResult.hbs`:
- Around line 1-8: The JSON Handlebars template GenerateTokenResult.hbs has
mixed tabs and spaces causing inconsistent indentation; update the file so all
indentation uses spaces (or all tabs) consistently—align the "header", its
"alg": "PS256" entry, and the "payload" block with the same indentation style
and level (ensure lines containing "header", "alg", "payload", and "aud" are
consistently indented) to improve maintainability.
In
`@api-test/src/main/resources/esignet/OTPAuthFactorFlow/WithoutVerifiedClaims/Userinfo/GetOidcUserInfoResult.hbs`:
- Around line 1-8: The template GetOidcUserInfoResult.hbs has inconsistent
indentation (mix of tabs and spaces) in the JSON structure (notably around the
"header" block and its "alg" line); normalize indentation across the file by
replacing tabs with the project's standard spaces (e.g., 2 or 4 spaces) so the
"header" and "payload" objects align consistently with the rest of the HBS
templates.
api-test/src/main/java/io/mosip/testrig/apirig/esignet/testrunner/MosipTestRunner.java
Show resolved
Hide resolved
api-test/src/main/java/io/mosip/testrig/apirig/esignet/testscripts/GetWithParam.java
Show resolved
Hide resolved
...in/java/io/mosip/testrig/apirig/esignet/testscripts/SimplePostForAutoGenIdForUrlEncoded.java
Show resolved
Hide resolved
...in/java/io/mosip/testrig/apirig/esignet/testscripts/SimplePostForAutoGenIdForUrlEncoded.java
Show resolved
Hide resolved
...src/main/resources/esignet/DifferentScopeLanguageClaimsSce/Authenticate/AuthenticateUser.yml
Show resolved
Hide resolved
api-test/src/main/resources/esignet/LinkAuthorizationCode/LinkAuthorizationCode.yml
Show resolved
Hide resolved
api-test/src/main/resources/esignet/LinkedAuthenticationOtp/LinkedAuthenticationOtp.yml
Show resolved
Hide resolved
api-test/src/main/resources/esignet/PartialUpdateOIDCClient/PartialUpdateOIDCClient.hbs
Show resolved
Hide resolved
.../main/resources/esignet/PmsIntegration/UpdatePartnerCertificate/UpdatePartnerCertificate.yml
Show resolved
Hide resolved
mohanachandran-s
left a comment
There was a problem hiding this comment.
Hope POM file for the release branch is updated
zesu22
left a comment
There was a problem hiding this comment.
Approving because @mohanachandran-s already approved it
Move the eSignet API Automation develop code to release-1.8.x branch
Summary by CodeRabbit
New Features
Improvements