Vladimir Dyuzhev
MockMotor Creator
Account Not Found Mock
Registration flows require checking if particular account exists. It should not exist on the first call but must exist after the registration. MockMotor supports this scenario.
This post also demonstrates stateful mocks.
If a mock account doesn’t exist, the mock should return an error. If it does, the mock should return the account info.
How to support both of these outcomes?
Option 1. Conditional Response
The most straightforward and most manageable way is to have a single response that replies with either an error message or the account data depending on if the mock account exists.
The response should:
1 Match the account with the data from the request.
2 Use Ignore and Continue
to not fail if the account is not found.
3 In the response payload, use a conditional branch:
3.1 If $account
(or account
for JS) variable is empty, produce an error response.
3.2 If $account
(account
) is not empty, produce a successful data response.
4 Optionally, use the same $account
or account
variable in other fields, such as HTTP status.
Note the Ignore & Continue
selection on step 2. If you leave the selection in Fail Immediately
position, the response will fail hard as soon as it found no
matching account, and will not produce the custom error message.
Option 2. A Separate Response for Not Found Accounts
Sometimes the response payload is already complicated enough to add the account not found condition there. In such a case we can extract the error generation into a separate response.
Our Not Found response will match when the account is not found, and our separate Found response will match when the account is found.
Not Found Response
To set up a dedicated Not Found response, we need to:
1 Match the account with the data from the request.
2 Select Ignore and Continue
in case the account is not found.
3 Match the response with a script that is true only when account is not found: not($account)
(XQ) or !account
(JS).
4 In the response payload, form the error message. If we’ve got that far in this response, we know that the account is not found.
5 Similarly, hardcode error values for any other properties in the response where required.
Found Response
To set up a dedicated Found response, we need match by all the same conditions, but the account must be found:
1 Match the account with the data from the request.
2 Match the response with a script that is true only when account is found - exists($account)
or account!=null
.
3 In the response payload, form the successful message.
4 Similarly, hardcode success values for any other properties in the response where required.
How to Create an Account?
Great, but the registration process requires to create an account. How to do that?
To create an account in a response, use Create New
option for If no accounts found
checkboxes.
When this response is executed and the account is not found, the account is automatically created.
The account is even pre-populated with the values you used to select it with.
Here the account is created and its officeId
property is populated with $input//*:office-id
value.
The rest of its properties you can populate in the Update Mock Accounts
section.