@@ -9,6 +9,38 @@ async function smartuiSnapshot(page, name, options = {}) {
99
1010 let log = utils . logger ( pkgName ) ;
1111 try {
12+ if ( process . env . UPLOAD_SDK_SCREENSHOT ) {
13+ try {
14+ const screenshotBuffer = await page . screenshot ( { fullPage : true } ) ;
15+ const screenshotBlob = new Blob ( [ screenshotBuffer ] , { type : 'image/png' } ) ;
16+ const form = new FormData ( ) ;
17+ //screenshot name is name_uuid use snapshotUuid = uuidv4()
18+ const snapshotid = Math . floor ( 100000 + Math . random ( ) * 900000 ) ;
19+ const screenshotName = `${ name } _${ snapshotid } ` ;
20+ form . append ( 'screenshotName' , screenshotName ) ;
21+ form . append ( 'uploadToS3Only' , true ) ;
22+ form . append ( 'buildId' , process . env . SMARTUI_BUILD_ID || '' ) ;
23+ form . append ( 'screenshot' , screenshotBlob , {
24+ filename : `${ screenshotName . replace ( / [ ^ a - z 0 - 9 ] / gi, '_' ) } .png` ,
25+ contentType : 'image/png' ,
26+ } ) ;
27+ const uploadUrl = 'https://api.lambdatest.com/visualui/1.0/screenshot' ;
28+ let response ;
29+ try {
30+ response = await fetch ( uploadUrl , {
31+ method : 'POST' ,
32+ headers : {
33+ projectToken : process . env . PROJECT_TOKEN || '' ,
34+ } ,
35+ body : form ,
36+ } ) ;
37+ } catch ( uploadError ) {
38+ log . info ( 'Failed to upload sdk screenshot:' , uploadError ) ;
39+ }
40+ } catch ( screenshotError ) {
41+ log . info ( 'Failed to capture sdk screenshot:' , screenshotError ) ;
42+ }
43+ }
1244 const resp = await utils . fetchDOMSerializer ( ) ;
1345 await page . evaluate ( resp . body . data . dom ) ;
1446
@@ -27,7 +59,7 @@ async function smartuiSnapshot(page, name, options = {}) {
2759 log . info ( `Snapshot captured: ${ name } ` ) ;
2860 } catch ( error ) {
2961 log . error ( `SmartUI snapshot failed "${ name } "` ) ;
30- log . error ( error ) ;
62+ log . error ( error ) ;
3163 }
3264}
3365
0 commit comments