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:
This is detail of integationtest.
This is detail of integationtest.
=Events=
=events=
==Type paramiter==
==Type paramiter==
===Normal case===
===Normal case===
Line 101: Line 101:
</syntaxhighlight>
</syntaxhighlight>


=Tests=
=tests=
==RefreshSeedData==
==RefreshSeedData==
Seed data for test case, can generate seed data by use this setting.
Seed data for test case, can generate seed data by use this setting.

Revision as of 02:12, 21 November 2025

This is detail of integationtest.

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