Browse Source

test case fix and audit

enzo 1 day ago
parent
commit
97716cdcd4
8 changed files with 62 additions and 50 deletions
  1. 1 2
      .env
  2. 0 0
      logs.json
  3. 3 3
      package.json
  4. 1 1
      src/dependencies/log
  5. 13 16
      src/services/message-auditor.service.ts
  6. 17 13
      src/test/test1.ts
  7. 2 2
      src/test/test2.ts
  8. 25 13
      src/test/test3.ts

+ 1 - 2
.env

@@ -1,5 +1,4 @@
-CheckAudit = Yes
-CheckAudit = Yes
+CheckAudit = "Yes"
 domain = "swopt.com"
 domain = "swopt.com"
 primary_database = "primaryDB"
 primary_database = "primaryDB"
 primary_user = "primaryUser"
 primary_user = "primaryUser"

+ 0 - 0
logs.json


+ 3 - 3
package.json

@@ -6,9 +6,9 @@
   "scripts": {
   "scripts": {
     "build": "tsc -p tsconfig.json",
     "build": "tsc -p tsconfig.json",
     "temp": "node test/temptest.js",
     "temp": "node test/temptest.js",
-    "test1": "node dist/est/test1.js",
-    "test2": "node dist/est/test2.js",
-    "test3": "node dist/est/test3.js",
+    "test1": "node dist/test/test1.js",
+    "test2": "node dist/test/test2.js",
+    "test3": "node dist/test/test3.js",
     "test": "echo \"Error: no test specified\" && exit 1"
     "test": "echo \"Error: no test specified\" && exit 1"
   },
   },
   "repository": {
   "repository": {

+ 1 - 1
src/dependencies/log

@@ -1 +1 @@
-Subproject commit 3005fd32f1e7f0094af9bd5c2423035448a2338e
+Subproject commit 7ccde530e1fc802fb390ceeae09e53e546d9168e

+ 13 - 16
src/services/message-auditor.service.ts

@@ -4,7 +4,6 @@ import { ErrorTrigger, MessageAuditorServiceInterface, MessageSynchronisationSer
 import { LoggingService } from "../dependencies/log/src/export";
 import { LoggingService } from "../dependencies/log/src/export";
 import { MessageLog } from "../dependencies/log/src/type/interface";
 import { MessageLog } from "../dependencies/log/src/type/interface";
 import { BaseMessage } from "../dependencies/log/src/dependencies/msgutil/interface/export";
 import { BaseMessage } from "../dependencies/log/src/dependencies/msgutil/interface/export";
-let processedMsgIds = new Set();
 require('dotenv').config();
 require('dotenv').config();
 
 
 export class MessageAuditorService implements MessageAuditorServiceInterface {
 export class MessageAuditorService implements MessageAuditorServiceInterface {
@@ -52,7 +51,7 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
 
 
     /* ________________ Private Functions _________________ */
     /* ________________ Private Functions _________________ */
     // Filtering functions to filters out messages
     // Filtering functions to filters out messages
-    private filterData(filters: any, message: MessageLog): boolean {
+    private filterData(message: MessageLog, filters?: any): boolean {
         let response: boolean = true //Just using this like a statemanagement
         let response: boolean = true //Just using this like a statemanagement
         let payload: BaseMessage = JSON.parse(message.appData.msgPayload as string) // Extract the payload from the messageLog first
         let payload: BaseMessage = JSON.parse(message.appData.msgPayload as string) // Extract the payload from the messageLog first
         this.checkIfIsInPayloadDataFormat(payload) // Convert stringified nested payload if there's any
         this.checkIfIsInPayloadDataFormat(payload) // Convert stringified nested payload if there's any
@@ -91,25 +90,22 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
         this.acquireData().then((data: { arr1: MessageLog[], arr2: MessageLog[] }) => {
         this.acquireData().then((data: { arr1: MessageLog[], arr2: MessageLog[] }) => {
             // In the case where there are differences in the array length, then extensive comparison
             // In the case where there are differences in the array length, then extensive comparison
             // will be carried out to filters out the differences. Differences are the missing data.
             // will be carried out to filters out the differences. Differences are the missing data.
-
-            if(process.env.CheckAudit)
-            {
-                console.log("Record set 1: ", _.keys(_.countBy(data.arr1,function(data:MessageLog){return data.appData['msgId']})).length);
-                console.log("Record set 2: ", _.keys(_.countBy(data.arr2,function(data:MessageLog){return data.appData['msgId']})).length);
+            console.log(`Checking Audit ${process.env.CheckAudit}`)
+            if (process.env.CheckAudit == `Yes`) {
+                console.log("Record set 1: ", _.keys(_.countBy(data.arr1, function (data: MessageLog) { return data.appData['msgId'] })).length);
+                console.log("Record set 2: ", _.keys(_.countBy(data.arr2, function (data: MessageLog) { return data.appData['msgId'] })).length);
             }
             }
 
 
 
 
-            if(process.env.CheckAudit)
-            {
-                console.log("[CheckAudit] Record set 1: ", _.keys(_.countBy(data.arr1,function(data:MessageLog){return data.appData['msgId']})).length);
-                console.log("[CheckAudit] Record set 2: ", _.keys(_.countBy(data.arr2,function(data:MessageLog){return data.appData['msgId']})).length);
+            if (process.env.CheckAudit == `Yes`) {
+                console.log("[CheckAudit] Record set 1: ", _.keys(_.countBy(data.arr1, function (data: MessageLog) { return data.appData['msgId'] })).length);
+                console.log("[CheckAudit] Record set 2: ", _.keys(_.countBy(data.arr2, function (data: MessageLog) { return data.appData['msgId'] })).length);
             }
             }
 
 
             this.checkArrayDifferences(data).then((data: MessageLog[]) => {
             this.checkArrayDifferences(data).then((data: MessageLog[]) => {
 
 
-                if(process.env.CheckAudit)
-                {
-                    console.log("Difference: ",data.length);
+                if (process.env.CheckAudit) {
+                    console.log("Difference: ", data.length);
                 }
                 }
 
 
                 data.forEach(msgElement => {
                 data.forEach(msgElement => {
@@ -140,14 +136,15 @@ export class MessageAuditorService implements MessageAuditorServiceInterface {
                     // Filter also carries out the query aspect of the operation, allowing it to acquire all the relevant data.
                     // Filter also carries out the query aspect of the operation, allowing it to acquire all the relevant data.
                     this.sourceSrc.filter({ msgTag: this.settings.incomingSource.tags[0] }).then((data: MessageLog[]) => {
                     this.sourceSrc.filter({ msgTag: this.settings.incomingSource.tags[0] }).then((data: MessageLog[]) => {
                         data.forEach((message: MessageLog) => {
                         data.forEach((message: MessageLog) => {
-                            if (this.filterData(this.settings.filters, message)) set1.push(message)
+                            if (this.filterData(message, this.settings.filters)) set1.push(message)
                         })
                         })
                     }).catch((err) => {
                     }).catch((err) => {
                         console.error(err.message)
                         console.error(err.message)
                     }).then(() => {
                     }).then(() => {
+                        console.log(set1.length)
                         this.targetSrc.filter({ msgTag: this.settings.target.tags[0] }).then((data: MessageLog[]) => {
                         this.targetSrc.filter({ msgTag: this.settings.target.tags[0] }).then((data: MessageLog[]) => {
                             data.forEach(message => {
                             data.forEach(message => {
-                                if (this.filterData(this.settings.filters, message)) set2.push(message)
+                                if (this.filterData(message, this.settings.filters)) set2.push(message)
                             })
                             })
                             allSets.arr1 = set1
                             allSets.arr1 = set1
                             allSets.arr2 = set2
                             allSets.arr2 = set2

+ 17 - 13
src/test/test1.ts

@@ -62,11 +62,13 @@ let publisher_storage: LogSetting = {
         logLocName: 'To be generated in client',
         logLocName: 'To be generated in client',
     },
     },
     mongoSetting: {
     mongoSetting: {
-        srv: true,
-        user: "testDB",
-        password: "h1nt1OyXw6QeUnzS",
-        server: "cluster0.29sklte.mongodb.net",
-        database: "test2",
+        server: process.env.domain,
+        user: process.env.primary_user,
+        password: process.env.password,
+        database: process.env.primary_database,
+        tls: true,
+        caFile: process.env.CAfilePath,
+        clientPemFile: process.env.clientPEMpath
     }
     }
 }
 }
 
 
@@ -83,11 +85,13 @@ let subscriber_storage: LogSetting = {
         logLocName: 'To be generated in client',
         logLocName: 'To be generated in client',
     },
     },
     mongoSetting: {
     mongoSetting: {
-        srv: true,
-        user: "testDB",
-        password: "h1nt1OyXw6QeUnzS",
-        server: "cluster0.29sklte.mongodb.net",
-        database: "test",
+        server: process.env.domain,
+        user: process.env.secondary_user,
+        password: process.env.password,
+        database: process.env.secondary_database,
+        tls: true,
+        caFile: process.env.CAfilePath,
+        clientPemFile: process.env.clientPEMpath
     }
     }
 }
 }
 
 
@@ -96,11 +100,11 @@ let settings: MessageSynchronisationServiceSetting = {
     incomingSource: {
     incomingSource: {
         //all of the settings to be combined here
         //all of the settings to be combined here
         ...publisher_storage,
         ...publisher_storage,
-        tags: ['Incoming']
+        tags: [`default`]
     }, //LogSetting & {tags:string[] },   
     }, //LogSetting & {tags:string[] },   
     target: {
     target: {
         ...subscriber_storage,
         ...subscriber_storage,
-        tags: ['Incoming']
+        tags: [`default`]
     }  //LogSetting & {tags:string[] }  
     }  //LogSetting & {tags:string[] }  
 }
 }
 
 
@@ -148,7 +152,7 @@ setTimeout(() => {
         message: "NO. I dont want to work"
         message: "NO. I dont want to work"
     }
     }
     errorSubject.next(sampleError)
     errorSubject.next(sampleError)
-}, 10000)
+}, 6000)
 
 
 /* THis is testing for generating error message to be fed into the error subject
 /* THis is testing for generating error message to be fed into the error subject
 to act as additional trigger to exectute the synchronization when there's no internet
 to act as additional trigger to exectute the synchronization when there's no internet

+ 2 - 2
src/test/test2.ts

@@ -131,8 +131,8 @@ setTimeout(() => {
 countdown()
 countdown()
 
 
 // Convert all the existing cdms into message log
 // Convert all the existing cdms into message log
-// convertDataInMongo(primary_storage.mongoSetting.url)
-// convertDataInMongo(secondary_storage.mongoSetting.url)
+convertDataInMongo(primary_storage.mongoSetting.url)
+convertDataInMongo(secondary_storage.mongoSetting.url)
 
 
 // These declaration are for the secondary to log the converted missing data back in it's own collection at their corresponding servers
 // These declaration are for the secondary to log the converted missing data back in it's own collection at their corresponding servers
 const dbConnection = mongoose.createConnection("mongodb+srv://testDB:h1nt1OyXw6QeUnzS@cluster0.29sklte.mongodb.net/secondary")
 const dbConnection = mongoose.createConnection("mongodb+srv://testDB:h1nt1OyXw6QeUnzS@cluster0.29sklte.mongodb.net/secondary")

+ 25 - 13
src/test/test3.ts

@@ -35,24 +35,36 @@ let source: LogSetting = {
     cacheMessageLimit: 0,
     cacheMessageLimit: 0,
     storage: "MongoDB",
     storage: "MongoDB",
     setting: {
     setting: {
-        appName: 'Deafult from source',
-        appLocName: 'To be generated in source',
-        logLocName: 'To be generated in source',
+        appName: 'Default from client',
+        appLocName: 'To be generated in client',
+        logLocName: 'To be generated in client',
     },
     },
     mongoSetting: {
     mongoSetting: {
-        url: 'mongodb+srv://testDB:h1nt1OyXw6QeUnzS@cluster0.29sklte.mongodb.net/test1'
+        server: process.env.domain,
+        user: process.env.primary_user,
+        password: process.env.password,
+        database: process.env.primary_database,
+        tls: true,
+        caFile: process.env.CAfilePath,
+        clientPemFile: process.env.clientPEMpath
     }
     }
 }
 }
 let target: LogSetting = {
 let target: LogSetting = {
     cacheMessageLimit: 0,
     cacheMessageLimit: 0,
     storage: "MongoDB",
     storage: "MongoDB",
     setting: {
     setting: {
-        appName: 'Default from target',
-        appLocName: 'To be generated in target',
-        logLocName: 'To be generated in target',
+        appName: 'Default from client',
+        appLocName: 'To be generated in client',
+        logLocName: 'To be generated in client',
     },
     },
     mongoSetting: {
     mongoSetting: {
-        url: 'mongodb+srv://testDB:h1nt1OyXw6QeUnzS@cluster0.29sklte.mongodb.net/test2'
+        server: process.env.domain,
+        user: process.env.secondary_user,
+        password: process.env.password,
+        database: process.env.secondary_database,
+        tls: true,
+        caFile: process.env.CAfilePath,
+        clientPemFile: process.env.clientPEMpath
     }
     }
 }
 }
 
 
@@ -65,13 +77,13 @@ let settings: MessageSynchronisationServiceSetting = {
     },
     },
     target: {
     target: {
         ...target,
         ...target,
-        tags: ['default'],
+        tags: [`default`],
     },
     },
     //  Set Filters here, since it's part of the settings
     //  Set Filters here, since it's part of the settings
-    filters: {
-        'data.data.data.personCode': 'w002',
-        'header.messageProducerInformation.origin.userApplication.userAppId': 'Content Delivery Management Server'
-    }
+    // filters: {
+    //     'data.data.data.personCode': 'w002',
+    //     'header.messageProducerInformation.origin.userApplication.userAppId': 'Content Delivery Management Server'
+    // }
 }
 }
 
 
 /* -------  Calling the functions to be tested ----------- */
 /* -------  Calling the functions to be tested ----------- */