@@ -31,115 +31,120 @@ if (!(export_opt === 'xlsx' || export_opt === 'txt')) {
31
31
// Defining export extension based on export option extracted from command line params.
32
32
let filename = `${ __dirname } /results/results_${ new Date ( ) . getTime ( ) } .${ export_opt } ` ;
33
33
34
- const config = require ( `./config/${ config_file } ` ) ;
35
- const schema = require ( `./schema/${ config . schema_name } ` ) ;
36
-
37
- // let startChromeInDebugMode = async () => {
38
- // let operatingSystem = os.platform();
39
- // if (operatingSystem === "linux") {
40
- // await exec(
41
- // "google-chrome --remote-debugging-port=9222 --user-data-dir=remote-profile"
42
- // );
43
- // } else if (operatingSystem === "win32") {
44
- // await exec(
45
- // "start chrome --remote-debugging-port=9222 --user-data-dir=remote-profile"
46
- // );
47
- // }
48
-
49
- // return new Promise((res) => {
50
- // setTimeout((_) => {
51
- // req("http://localhost:9222/json/version")
52
- // .then((result) => {
53
- // res(JSON.parse(result).webSocketDebuggerUrl);
54
- // })
55
- // .catch((err) =>
56
- // console.log(
57
- // "Error while trying to pick the Debugger URL. Did you open the chrome instance with debugging port?"
58
- // )
59
- // );
60
- // }, 5000);
61
- // });
62
- // };
63
-
64
- ( async ( ) => {
65
- // const browser = await puppeteer.connect({
66
- // browserWSEndpoint: await startChromeInDebugMode(),
67
- // });
68
- const browser = await puppeteer . launch ( { headless : false } ) ;
69
- let page = await browser . newPage ( ) ;
70
-
71
- // .pages
72
- // .then((res) => res[0])
73
- // .catch((err) => new Error(err));
74
-
75
- if ( config . gtmPreviewModeURL ) await page . goto ( config . gtmPreviewModeURL ) ;
76
-
77
- if ( config . mobile_enabled === true ) {
78
- await page . emulate ( iPhone ) ;
79
- } else {
80
- await page . setViewport ( { width : 1366 , height : 768 } ) ;
81
- }
82
-
83
- await page . exposeFunction ( 'bowser' , ( event ) => {
84
- bowserjr . validate ( schema , event , function ( result ) {
85
- resultsArray . push ( result [ 0 ] ) ;
34
+ const configFile = require ( `./config/${ config_file } ` ) ;
35
+ configFile . validator . forEach ( async ( config ) => {
36
+ const schema = require ( `./schema/${ config . schema_name [ 0 ] } ` ) ;
37
+ // let startChromeInDebugMode = async () => {
38
+ // let operatingSystem = os.platform();
39
+ // if (operatingSystem === "linux") {
40
+ // await exec(
41
+ // "google-chrome --remote-debugging-port=9222 --user-data-dir=remote-profile"
42
+ // );
43
+ // } else if (operatingSystem === "win32") {
44
+ // await exec(
45
+ // "start chrome --remote-debugging-port=9222 --user-data-dir=remote-profile"
46
+ // );
47
+ // }
48
+
49
+ // return new Promise((res) => {
50
+ // setTimeout((_) => {
51
+ // req("http://localhost:9222/json/version")
52
+ // .then((result) => {
53
+ // res(JSON.parse(result).webSocketDebuggerUrl);
54
+ // })
55
+ // .catch((err) =>
56
+ // console.log(
57
+ // "Error while trying to pick the Debugger URL. Did you open the chrome instance with debugging port?"
58
+ // )
59
+ // );
60
+ // }, 5000);
61
+ // });
62
+ // };
63
+
64
+ ( async ( ) => {
65
+ // const browser = await puppeteer.connect({
66
+ // browserWSEndpoint: await startChromeInDebugMode(),
67
+ // });
68
+ const browser = await puppeteer . launch ( { headless : false } ) ;
69
+ let page = await browser . newPage ( ) ;
70
+
71
+ // .pages
72
+ // .then((res) => res[0])
73
+ // .catch((err) => new Error(err));
74
+
75
+ if ( config . gtmPreviewModeURL ) await page . goto ( config . gtmPreviewModeURL ) ;
76
+
77
+ if ( config . mobile_enabled === true ) {
78
+ await page . emulate ( iPhone ) ;
79
+ } else {
80
+ await page . setViewport ( { width : 1366 , height : 768 } ) ;
81
+ }
82
+
83
+ await page . exposeFunction ( 'bowser' , ( event ) => {
84
+ bowserjr . validate ( schema , event , function ( result ) {
85
+ resultsArray . push ( result [ 0 ] ) ;
86
+ } ) ;
86
87
} ) ;
87
- } ) ;
88
-
89
- async function runAfterGTMDebug ( ) {
90
- page . on ( 'load' , async ( ) => {
91
- await page . waitFor ( 5000 ) ;
92
- if ( page . url ( ) === config . url ) {
93
- let path = `Url validating: ${ page . url ( ) } \n` ;
94
- //doc.text(path, 10, 10);
95
- await page . evaluate ( ( ) => {
96
- //Validate first hits.
97
- window . dataLayer . forEach ( ( elem ) => {
98
- bowser ( elem ) ;
99
- } ) ;
100
- window . dataLayer . push_c = window . dataLayer . push ;
101
- window . dataLayer . push = function ( obj ) {
102
- window . dataLayer . push_c ( obj ) ;
103
- bowser ( obj ) ;
104
- } ;
105
- } ) ;
106
- if ( config . browserClose ) {
107
- config . time ? await page . waitFor ( config . time ) : await page . waitFor ( 0 ) ;
108
- await browser . close ( ) ;
109
- }
110
- } else {
111
- let path = `Path : ${ page . url ( ) } \n` ;
112
- //doc.text(path, 10, 10);
113
- }
114
- } ) ;
115
-
116
- await page . goto ( config . url ) ;
117
- }
118
88
119
- await runAfterGTMDebug ( ) ;
120
-
121
- await fs . appendFile ( filename , '' , ( ) => { } ) ;
122
-
123
- let cleanupEval = ( ) => {
124
- console . log ( 'Realizing last eval' ) ;
125
- bowserjr . validate ( schema , { } , function ( result ) {
126
- resultsArray . push ( result [ 0 ] ) ;
127
- } ) ;
128
- resultsArray . forEach ( ( resultObject ) => {
129
- if ( resultObject ) {
130
- resultObject . dataLayerObject = resultObject . dataLayerObject . replace ( / ( \r \n | \n | \r ) / gm, '' ) ;
131
- resultObject . dataLayerObject = resultObject . dataLayerObject . replace ( / \s / g, '' ) ;
132
- resultObject . dataLayerObject = resultObject . dataLayerObject . split ( ',' ) . join ( ' ' ) ;
133
- fs . appendFileSync (
134
- filename ,
135
- `${ resultObject . status } , ${ resultObject . message } , ${ resultObject . dataLayerObject } \n` ,
136
- ( err ) => {
89
+ async function runAfterGTMDebug ( ) {
90
+ page . on ( 'load' , async ( ) => {
91
+ await page . waitFor ( 2000 ) ;
92
+ if ( page . url ( ) === config . url ) {
93
+ await fs . appendFileSync ( filename , `Url validating: ${ page . url ( ) } \n` , ( err ) => {
137
94
if ( err ) throw err ;
95
+ } ) ;
96
+ //doc.text(path, 10, 10);
97
+ await page . evaluate ( ( ) => {
98
+ //Validate first hits.
99
+ window . dataLayer . forEach ( ( elem ) => {
100
+ bowser ( elem ) ;
101
+ } ) ;
102
+ window . dataLayer . push_c = window . dataLayer . push ;
103
+ window . dataLayer . push = function ( obj ) {
104
+ window . dataLayer . push_c ( obj ) ;
105
+ bowser ( obj ) ;
106
+ } ;
107
+ } ) ;
108
+ if ( config . browserClose ) {
109
+ config . time ? await page . waitFor ( config . time ) : await page . waitFor ( 0 ) ;
110
+ await browser . close ( ) ;
138
111
}
139
- ) ;
140
- }
141
- } ) ;
142
- } ;
112
+ } else {
113
+ await fs . appendFileSync ( filename , `Path : ${ page . url ( ) } \n` , ( err ) => {
114
+ if ( err ) throw err ;
115
+ } ) ;
116
+ //doc.text(path, 10, 10);
117
+ }
118
+ } ) ;
119
+
120
+ await page . goto ( config . url ) ;
121
+ }
122
+
123
+ await runAfterGTMDebug ( ) ;
124
+
125
+ await fs . appendFile ( filename , '' , ( ) => { } ) ;
126
+
127
+ let cleanupEval = ( ) => {
128
+ console . log ( 'Realizing last eval' ) ;
129
+ bowserjr . validate ( schema , { } , function ( result ) {
130
+ resultsArray . push ( result [ 0 ] ) ;
131
+ } ) ;
132
+ resultsArray . forEach ( ( resultObject ) => {
133
+ if ( resultObject ) {
134
+ resultObject . dataLayerObject = resultObject . dataLayerObject . replace ( / ( \r \n | \n | \r ) / gm, '' ) ;
135
+ resultObject . dataLayerObject = resultObject . dataLayerObject . replace ( / \s / g, '' ) ;
136
+ resultObject . dataLayerObject = resultObject . dataLayerObject . split ( ',' ) . join ( ' ' ) ;
137
+ fs . appendFileSync (
138
+ filename ,
139
+ `${ resultObject . status } , ${ resultObject . message } , ${ resultObject . dataLayerObject } \n` ,
140
+ ( err ) => {
141
+ if ( err ) throw err ;
142
+ }
143
+ ) ;
144
+ }
145
+ } ) ;
146
+ } ;
143
147
144
- process . on ( 'exit' , cleanupEval ) ;
145
- } ) ( ) ;
148
+ await process . on ( 'exit' , cleanupEval ) ;
149
+ } ) ( ) ;
150
+ } ) ;
0 commit comments