2025-11-20 IntegrationTest: Difference between revisions

From Izara Wiki
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 have seed data for test case, can generate seed data by use this setting.  
: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">
::*dynamoDBSeedDataTags graphSeedDataTags
[
 
  {
:
    "integrationTestTag": "Test_MLocation_CreateHdrSqs__case_NodeVersionData_Jaya",
=RefreshSeedData=
    "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
  • 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"
           }
         ]
       }
     }
   ]
 }

]