2025-11-20 IntegrationTest: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
= Type paramiter =
=Events=
==Type paramiter==
===Normal case===
===Normal case===
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
Line 87: Line 88:
     "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
Line 99: Line 100:
</syntaxhighlight>
</syntaxhighlight>


=RefreshSeedData=
=Tests=
:integrationtest have seed data for test case, can generate seed data by use this setting.
==RefreshSeedData==
Seed data for test case, can generate seed data by use this setting.
Process refresh seed data first step delete all seed data after that create all seed data.
 
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
[
[
Line 126: Line 130:
: This tag save file in floder seedData_config
: This tag save file in floder seedData_config


=GenerateSeedData=
 
:Integrationtest must be delete identifier every time before test.
==GenerateSeedData==
::*How to delete case identifier rendomOnCreate?
*Integrationtest must be delete identifier every time before test.
::: set in stage use setting generateSeedData "randomOnCreateIdentifier"
*Set 'generatedSeedData' in file tests.json case by case of stage eg: stages[0] create identifier is randomOnCreate will set 'generatedSeedData' and stages[1] create relationship is randomOnCreate(It is usually random, except in the case of relationship version) set generatedSeedData this stages[1].
:: 3 case
*How to delete case identifier rendomOnCreate?: set in stage use setting generateSeedData "randomOnCreateIdentifier"
::: 1.randomOnCreateIdentifier
: 3 case
::: 2.notRandomOnIdentifier
:: 1.randomOnCreateIdentifier
::: 3.relationships
:: 2.notRandomOnIdentifier
::*randomOnCreateIdentifier
:: 3.relationships
===randomOnCreateIdentifier===
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
[
[
Line 173: Line 178:
]
]
</syntaxhighlight>
</syntaxhighlight>
::*notRandomOnIdentifier
 
===notRandomOnIdentifier===
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
[
[
Line 215: Line 221:
</syntaxhighlight>
</syntaxhighlight>


::*relationships
===relationships===
<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
[
[
Line 253: Line 259:
   }
   }
]
]
</syntaxhighlight>

Revision as of 02:07, 21 November 2025

Events

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

Tests

RefreshSeedData

Seed data for test case, can generate seed data by use this setting. Process refresh seed data first step delete all seed data after that create all seed data.

[
  {
    "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.
  • Set 'generatedSeedData' in file tests.json case by case of stage eg: stages[0] create identifier is randomOnCreate will set 'generatedSeedData' and stages[1] create relationship is randomOnCreate(It is usually random, except in the case of relationship version) set generatedSeedData this stages[1].
  • 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

[
  {
    "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"
            }
          ]
        }
      }
    ]
  }
]