2025-11-20 IntegrationTest: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
===Normal case=== | ===Normal case=== | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
object: { | object: { | ||
forStageMatching: true, | forStageMatching: true, | ||
properties: { | properties: { | ||
name:{ | name:{ | ||
| Line 10: | Line 10: | ||
value:"Tom" | value:"Tom" | ||
} | } | ||
} | } | ||
}, | }, | ||
array: { | array: { | ||
forStageMatching: true, | forStageMatching: true, | ||
useIsEqual: true, | useIsEqual: true, | ||
| Line 34: | Line 34: | ||
} | } | ||
] | ] | ||
}, | }, | ||
number: { | number: { | ||
forStageMatching: true, | forStageMatching: true, | ||
value: 1111 | value: 1111 | ||
}, | }, | ||
string: { | string: { | ||
forStageMatching: true, | forStageMatching: true, | ||
value: "hi" | value: "hi" | ||
}, | }, | ||
boolean: { | boolean: { | ||
forStageMatching: true, | forStageMatching: true, | ||
value: true | value: true | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 52: | Line 52: | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
forStageMatching: true | forStageMatching: true | ||
</syntaxhighlight> | </syntaxhighlight> | ||
::set true for check match value,It is not necessary to set every value | ::set true for check match value,It is not necessary to set every value | ||
:::use in test importent paramiter | :::use in test importent paramiter | ||
| Line 67: | Line 67: | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
EmptyString:{ | EmptyString:{ | ||
value:"" | value:"" | ||
}, | }, | ||
EmptyArray:{ | EmptyArray:{ | ||
forStageMatching: true, | forStageMatching: true, | ||
useIsEqual: true, | useIsEqual: true, | ||
eventValue: [] | eventValue: [] | ||
}, | }, | ||
EmptyObject:{ | EmptyObject:{ | ||
forStageMatching: true, | forStageMatching: true, | ||
value:{} | value:{} | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 83: | Line 83: | ||
can test noRetryError | can test noRetryError | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
"errorMessage": { | "errorMessage": { | ||
forStageMatching: true, | forStageMatching: true, | ||
"value": "Not found schema of {serviceTag:TestGraphHandler, objectType:notFoundObjType}" | "value": "Not found schema of {serviceTag:TestGraphHandler, objectType:notFoundObjType}" | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Can not test case random nubber or identifer is random. | Can not test case random nubber or identifer is random. | ||
But request mush be send param use setting | But request mush be send param use setting | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
testValueMatches:false | testValueMatches:false | ||
</syntaxhighlight> | </syntaxhighlight> | ||
or set | or set | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
forStageMatching:false | forStageMatching:false | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=RefreshSeedData= | |||
:integrationtest have seed data for test case, can generate seed data by use this setting. | |||
<syntaxhighlight lang="JavaScript"> | |||
[ | |||
{ | |||
"integrationTestTag": "Test_mackTestLogic_refreceSeedData_DeleteIdentifier", | |||
"productionSafe": false, | |||
"errorIfStageUnderfined": false, | |||
"errorIfInvokeUnderfined": false, | |||
"dynamoDBSeedDataTags": [ | |||
"seedDynamodb_abc_ver2" | |||
], | |||
"graphSeedDataTags": [ | |||
"seedData_testTag_GG" | |||
], | |||
"stages": [ | |||
//... | |||
] | |||
} | |||
] | |||
</syntaxhighlight> | |||
::*dynamoDBSeedDataTags | |||
::::If set tag in this setting integrationtest is generate seed data. in storage resource dynammodb. | |||
::*graphSeedDataTags | |||
::::If set tag in this setting integrationtest is generate seed data. in storage resource graphHanler. | |||
: This tag save file in floder seedData_config | |||
=GenerateSeedData= | =GenerateSeedData= | ||
: | :Integrationtest must be delete identifier every time before test. | ||
::*How to delete case identifier rendomOnCreate? | |||
::: set in stage use setting generateSeedData "randomOnCreateIdentifier" | |||
:: 3 case | |||
::: 1.randomOnCreateIdentifier | |||
::: 2.notRandomOnIdentifier | |||
::: 3.relationships | |||
::*randomOnCreateIdentifier | |||
<syntaxhighlight lang="JavaScript"> | |||
[ | |||
{ | |||
"integrationTestTag": "Test_MLocation_CreateHdrSqs__case_NodeVersionData_Jaya", | |||
"productionSafe": false, | |||
"errorIfStageUnderfined": false, | |||
"errorIfInvokeUnderfined": false, | |||
"dynamoDBSeedDataTags": [ | |||
"seedDynamodb_abc_ver2" | |||
], | |||
"graphSeedDataTags": [ | |||
"seedData_testTag_GG" | |||
], | |||
"stages": [ | |||
{ | |||
"initialStage": true, | |||
"inputEventTag": "MLocation_CreateHdrSqs__case_NodeVersionData_Jaya", | |||
"serviceTag": "MLocations", | |||
"resourceType": "Lambda", | |||
"resourceName": "CreateHdrSqs", | |||
"snsServiceName": "MLocations", | |||
"snsTopic": "Create_In", | |||
"generatedSeedData": { | |||
"randomOnCreateIdentifier": [ | |||
{ | |||
"objType": { | |||
"serviceTag": "MLocations", | |||
"objectType": "Member" | |||
}, | |||
"identifierValue": "Jaya-member-001" | |||
} | |||
] | |||
} | |||
} | |||
] | |||
} | |||
] | |||
</syntaxhighlight> | |||
::*notRandomOnIdentifier | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
[ | |||
{ | |||
"integrationTestTag": "Test_MLocation_CreateHdrSqs__case_NodeVersionData_Jaya", | |||
"productionSafe": false, | |||
"errorIfStageUnderfined": false, | |||
"errorIfInvokeUnderfined": false, | |||
"dynamoDBSeedDataTags": [ | |||
"seedDynamodb_abc_ver2" | |||
], | |||
"graphSeedDataTags": [ | |||
"seedData_testTag_GG" | |||
], | |||
"stages": [ | |||
{ | |||
"initialStage": true, | |||
"inputEventTag": "MLocation_CreateHdrSqs__case_NodeVersionData_Jaya", | |||
"serviceTag": "MLocations", | |||
"resourceType": "Lambda", | |||
"resourceName": "CreateHdrSqs", | |||
"snsServiceName": "MLocations", | |||
"snsTopic": "Create_In", | |||
"generatedSeedData": { | |||
"notRandomOnIdentifier": [ | |||
{ | |||
"objType": { | |||
"serviceTag": "gggg", | |||
"objectType": "ssssss" | |||
}, | |||
"identifiers": { | |||
"topId": "123456" | |||
} | |||
} | |||
] | |||
} | |||
} | |||
] | |||
} | |||
] | |||
</syntaxhighlight> | |||
::*relationships | |||
<syntaxhighlight lang="JavaScript"> | |||
:: | [ | ||
{ | |||
: | "integrationTestTag": "Test_MLocation_CreateHdrSqs__case_NodeVersionData_Jaya", | ||
"productionSafe": false, | |||
"errorIfStageUnderfined": false, | |||
"errorIfInvokeUnderfined": false, | |||
"dynamoDBSeedDataTags": [ | |||
"seedDynamodb_abc_ver2" | |||
], | |||
"graphSeedDataTags": [ | |||
"seedData_testTag_GG" | |||
], | |||
"stages": [ | |||
{ | |||
"initialStage": true, | |||
"inputEventTag": "MLocation_CreateHdrSqs__case_NodeVersionData_Jaya", | |||
"serviceTag": "MLocations", | |||
"resourceType": "Lambda", | |||
"resourceName": "CreateHdrSqs", | |||
"snsServiceName": "MLocations", | |||
"snsTopic": "Create_In", | |||
"generatedSeedData": { | |||
"relationships": [ | |||
{ | |||
"relType": { | |||
"serviceTag": "PaymentMethodGeneric", | |||
"relationshipTag": "disabledPaymentMethodGenericPropertyValue" | |||
}, | |||
"relId": "f4f73de7-647c-4b3b-8043-87cc002f361a" | |||
} | |||
] | |||
} | |||
} | |||
] | |||
} | |||
] | |||
Revision as of 09:06, 20 November 2025
Type paramiter
Normal case
object: {
forStageMatching: true,
properties: {
name:{
forStageMatching: true,
value:"Tom"
}
}
},
array: {
forStageMatching: true,
useIsEqual: true,
eventValue: [
{
"relTypeAndDirection": {
"relType": {
"serviceTag": "maxxCart2",
"relationshipTag": "hasCartOrder"
},
"relationshipDirection": "from"
},
"targetObjects": [
{
"objType": {
"serviceTag": "maxxCart2",
"objectType": "cartOrder"
}
}
]
}
]
},
number: {
forStageMatching: true,
value: 1111
},
string: {
forStageMatching: true,
value: "hi"
},
boolean: {
forStageMatching: true,
value: true
}
- forStageMatching
forStageMatching: true
- set true for check match value,It is not necessary to set every value
- use in test importent paramiter
- set true for check match value,It is not necessary to set every value
- testValueMatches
testValueMatches:false
- setting paramiter require on create but can not test random value eg: identifier or timeStamp or uuid
Empty
EmptyString:{
value:""
},
EmptyArray:{
forStageMatching: true,
useIsEqual: true,
eventValue: []
},
EmptyObject:{
forStageMatching: true,
value:{}
}
Error
can test noRetryError
"errorMessage": {
forStageMatching: true,
"value": "Not found schema of {serviceTag:TestGraphHandler, objectType:notFoundObjType}"
}
Can not test case random nubber or identifer is random. But request mush be send param use setting
testValueMatches:false
or set
forStageMatching:false
RefreshSeedData
- integrationtest have seed data for test case, can generate seed data by use this setting.
[
{
"integrationTestTag": "Test_mackTestLogic_refreceSeedData_DeleteIdentifier",
"productionSafe": false,
"errorIfStageUnderfined": false,
"errorIfInvokeUnderfined": false,
"dynamoDBSeedDataTags": [
"seedDynamodb_abc_ver2"
],
"graphSeedDataTags": [
"seedData_testTag_GG"
],
"stages": [
//...
]
}
]
- dynamoDBSeedDataTags
- If set tag in this setting integrationtest is generate seed data. in storage resource dynammodb.
- graphSeedDataTags
- If set tag in this setting integrationtest is generate seed data. in storage resource graphHanler.
- This tag save file in floder seedData_config
GenerateSeedData
- Integrationtest must be delete identifier every time before test.
- How to delete case identifier rendomOnCreate?
- set in stage use setting generateSeedData "randomOnCreateIdentifier"
- 3 case
- 1.randomOnCreateIdentifier
- 2.notRandomOnIdentifier
- 3.relationships
- randomOnCreateIdentifier
[
{
"integrationTestTag": "Test_MLocation_CreateHdrSqs__case_NodeVersionData_Jaya",
"productionSafe": false,
"errorIfStageUnderfined": false,
"errorIfInvokeUnderfined": false,
"dynamoDBSeedDataTags": [
"seedDynamodb_abc_ver2"
],
"graphSeedDataTags": [
"seedData_testTag_GG"
],
"stages": [
{
"initialStage": true,
"inputEventTag": "MLocation_CreateHdrSqs__case_NodeVersionData_Jaya",
"serviceTag": "MLocations",
"resourceType": "Lambda",
"resourceName": "CreateHdrSqs",
"snsServiceName": "MLocations",
"snsTopic": "Create_In",
"generatedSeedData": {
"randomOnCreateIdentifier": [
{
"objType": {
"serviceTag": "MLocations",
"objectType": "Member"
},
"identifierValue": "Jaya-member-001"
}
]
}
}
]
}
]
- notRandomOnIdentifier
[
{
"integrationTestTag": "Test_MLocation_CreateHdrSqs__case_NodeVersionData_Jaya",
"productionSafe": false,
"errorIfStageUnderfined": false,
"errorIfInvokeUnderfined": false,
"dynamoDBSeedDataTags": [
"seedDynamodb_abc_ver2"
],
"graphSeedDataTags": [
"seedData_testTag_GG"
],
"stages": [
{
"initialStage": true,
"inputEventTag": "MLocation_CreateHdrSqs__case_NodeVersionData_Jaya",
"serviceTag": "MLocations",
"resourceType": "Lambda",
"resourceName": "CreateHdrSqs",
"snsServiceName": "MLocations",
"snsTopic": "Create_In",
"generatedSeedData": {
"notRandomOnIdentifier": [
{
"objType": {
"serviceTag": "gggg",
"objectType": "ssssss"
},
"identifiers": {
"topId": "123456"
}
}
]
}
}
]
}
]
- relationships
<syntaxhighlight lang="JavaScript"> [
{
"integrationTestTag": "Test_MLocation_CreateHdrSqs__case_NodeVersionData_Jaya",
"productionSafe": false,
"errorIfStageUnderfined": false,
"errorIfInvokeUnderfined": false,
"dynamoDBSeedDataTags": [
"seedDynamodb_abc_ver2"
],
"graphSeedDataTags": [
"seedData_testTag_GG"
],
"stages": [
{
"initialStage": true,
"inputEventTag": "MLocation_CreateHdrSqs__case_NodeVersionData_Jaya",
"serviceTag": "MLocations",
"resourceType": "Lambda",
"resourceName": "CreateHdrSqs",
"snsServiceName": "MLocations",
"snsTopic": "Create_In",
"generatedSeedData": {
"relationships": [
{
"relType": {
"serviceTag": "PaymentMethodGeneric",
"relationshipTag": "disabledPaymentMethodGenericPropertyValue"
},
"relId": "f4f73de7-647c-4b3b-8043-87cc002f361a"
}
]
}
}
]
}
]