Skip to content

Instantly share code, notes, and snippets.

@jakedowns
Created May 13, 2020 18:51
Show Gist options
  • Save jakedowns/4288d0dd0ebe62a073b187992ddae6bf to your computer and use it in GitHub Desktop.
Save jakedowns/4288d0dd0ebe62a073b187992ddae6bf to your computer and use it in GitHub Desktop.
ghost inspector wait for emails to arrive with subject(s)
return new Promise((resolve,reject)=>{
function checkForEmails(){
var assertions = [];
var subject_assertions = {{giemail_assert_emails_arrived_with_subjects}};
var subjects_in_dom = {{subjects_in_dom}};
for(var i=0; i<subject_assertions.length; i++){
// Exact Match
//assertions.push(subjects_in_dom.indexOf(subject_assertions[i]) >-1)
// Partial Matching
let found = false;
for(var j=0; j<subjects_in_dom.length; j++){
if(subjects_in_dom[j].indexOf(subject_assertions[i]) >- 1){
found = true;
}
}
assertions.push(found);
}
let result = assertions.reduce(function(acc,curr){
return curr ? acc+1 : acc;
},0) === assertions.length;
console.log('GIEmail Assert Subjects in DOM', JSON.stringify({
subject_assertions,
subjects_in_dom,
assertions,
result
}));
return result;
}
let start = Date.now();
function recursiveCheck(){
let now = Date.now();
let passing = checkForEmails();
if(passing){
resolve("true");
}else if(!passing && now - start < 59000){
setTimeout(()=>{
recursiveCheck();
},500);
}else{
resolve("false");
}
}
recursiveCheck();
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment