{"title":"Blacklight Inspection","page_title":"Hello, I'm Marc Littlemore","uri_ins":"http://www.marclittlemore.com/","uri_dest":"https://www.marclittlemore.com/","uri_redirects":["http://www.marclittlemore.com/"],"secure_connection":{},"host":"www.marclittlemore.com","config":{"emulateDevice":{"name":"iPhone 13 Pro","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1","viewport":{"width":390,"height":844,"deviceScaleFactor":3,"isMobile":true,"hasTouch":true,"isLandscape":false}},"cleareCache":true,"captureHar":true,"captureLinks":false,"enableAdBlock":false,"saveBrowserProfile":false,"numPages":2,"defaultTimeout":35000,"defaultWaitUntil":"networkidle2","headless":true,"headers":{},"extraChromiumArgs":["--disable-features=TrackingProtection3pcd","--website-analysis-scan=d236064d-5bdd-4b66-a358-cd394648decb"],"extraPuppeteerOptions":{}},"browser":{"name":"Chromium","version":"Chrome/127.0.6533.88","user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/127.0.0.0 Safari/537.36","platform":{"name":"Linux","version":"6.12.107+deb13-amd64"}},"script":{"host":"82cd976bb63a","version":{"npm":"3.11.0","commit":"dev"},"node_version":"v24.21.0"},"start_time":"2026-09-13T18:17:58.605Z","end_time":"2026-09-13T18:18:14.173Z","browsing_history":["https://www.marclittlemore.com/","https://www.marclittlemore.com/how-to-unit-test-express-routes/","https://www.marclittlemore.com/bots/"],"hosts":{"requests":{"first_party":["www.marclittlemore.com"],"third_party":["www.googletagmanager.com","www.google-analytics.com","connect.facebook.net","region1.analytics.google.com","stats.g.doubleclick.net","www.google.fr","www.facebook.com","platform.twitter.com","syndication.twitter.com","cdn.syndication.twimg.com","abs-0.twimg.com","syndication.x.com","pbs.twimg.com"]}},"reports":{"behaviour_event_listeners":{"MOUSE":{"https://www.googletagmanager.com/gtag/js?id=G-Z3NPENEK2T&cx=c&gtm=4e6992":["click"],"https://connect.facebook.net/signals/config/290377285027331?v=2.9.398&r=stable&domain=www.marclittlemore.com&im=1&hme=457e068698591ac437afb4b2e5fbe0266b08712615b8792436a91385ebda0da3&ex_m=115%2C227%2C166%2C26%2C80%2C81%2C158%2C76%2C75%2C11%2C176%2C100%2C20%2C150%2C138%2C45%2C83%2C88%2C146%2C171%2C178%2C31%2C17%2C30%2C18%2C32%2C33%2C34%2C36%2C54%2C159%2C85%2C123%2C22%2C24%2C50%2C46%2C48%2C47%2C93%2C102%2C106%2C121%2C157%2C160%2C52%2C122%2C28%2C25%2C130%2C77%2C42%2C162%2C161%2C163%2C154%2C152%2C29%2C41%2C65%2C120%2C173%2C78%2C21%2C125%2C91%2C74%2C23%2C95%2C96%2C127%2C94%2C148%2C147%2C151%2C107%2C172%2C175%2C40%2C55%2C124%2C53%2C8%2C4%2C5%2C7%2C6%2C3%2C101%2C112%2C180%2C179%2C194%2C241%2C82%2C255%2C254%2C253%2C14%2C27%2C39%2C61%2C114%2C67%2C10%2C71%2C108%2C109%2C110%2C116%2C141%2C37%2C35%2C143%2C144%2C145%2C140%2C139%2C167%2C84%2C170%2C168%2C169%2C56%2C66%2C134%2C19%2C174%2C51%2C305%2C306%2C307%2C304%2C320%2C344%2C234%2C223%2C68%2C224%2C222%2C347%2C338%2C58%2C235%2C118%2C142%2C90%2C132%2C60%2C131%2C137%2C136%2C64%2C72%2C70%2C164%2C86%2C87%2C126%2C43%2C38%2C59%2C62%2C111%2C177%2C1%2C135%2C16%2C133%2C12%2C2%2C63%2C103%2C15%2C73%2C69%2C129%2C99%2C98%2C182%2C183%2C104%2C105%2C9%2C113%2C181%2C57%2C155%2C97%2C89%2C79%2C128%2C117%2C49%2C156%2C0%2C92%2C149%2C153%2C165%2C44%2C119%2C13%2C184":["click"],"https://platform.twitter.com/embed/embed.9203.1b3edf1dee6d205547e0.js":["click","scroll","mouseup","mousemove","mousedown"],"https://platform.twitter.com/embed/embed.9449.78398904051446294e3d.js":["scroll","select","mouseup","mousemove","mousedown"],"https://platform.twitter.com/widgets.js":["click"]},"KEYBOARD":{"https://platform.twitter.com/embed/embed.9203.1b3edf1dee6d205547e0.js":["keydown"],"https://platform.twitter.com/embed/embed.9449.78398904051446294e3d.js":["keydown"]},"TOUCH":{"https://platform.twitter.com/embed/embed.9203.1b3edf1dee6d205547e0.js":["touchstart","touchmove","touchcancel"],"https://platform.twitter.com/embed/embed.9449.78398904051446294e3d.js":["touchcancel","touchend","touchmove","touchstart"]}},"canvas_fingerprinters":{"data_url":{},"fingerprinters":[],"styles":{},"texts":{}},"canvas_font_fingerprinters":{"canvas_font":{},"text_measure":{}},"cookies":[{"name":"__cf_bm","value":"5tkvkqppGEUSQDma2s.UUDR0fSIANVdYJux7SWOAHIc-1789323489.9881744-1.0.1.1-VrSOfmkGmpCTQ_ITcwzWpOj4biyfg8TxiqOBL4UPp.gyD5i2kK3dB5zaqIyS83KiaMMNjplIO_L27d21Vtm4ENDiVNTZG3VKYSn8Fp1YRNemUAiuBTdPk29UU__VG88I","domain":"x.com","path":"/","expires":"2026-09-13T18:48:10.107Z","size":206,"httpOnly":true,"secure":true,"session":false,"sameSite":"None","priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"unknown","third_party":true},{"name":"_fbp","value":"fb.1.1789323490540.72708349120988118","domain":"marclittlemore.com","path":"/","expires":"2026-12-12T18:18:10.000Z","size":40,"httpOnly":false,"secure":false,"session":false,"sameSite":"Lax","priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_gid","value":"GA1.2.1652858913.1789323491","domain":"marclittlemore.com","path":"/","expires":"2026-09-14T18:18:10.000Z","size":31,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_gat_gtag_UA_810717_3","value":"1","domain":"marclittlemore.com","path":"/","expires":"2026-09-13T18:19:10.000Z","size":22,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_ga_Z3NPENEK2T","value":"GS2.1.s1789323481$o1$g1$t1789323490$j51$l0$h0","domain":"marclittlemore.com","path":"/","expires":"2027-10-18T18:18:10.698Z","size":59,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_ga","value":"GA1.1.371298959.1789323491","domain":"marclittlemore.com","path":"/","expires":"2027-10-18T18:18:10.699Z","size":29,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false}],"fb_pixel_events":[{"advancedMatchingParams":[],"dataParams":[],"eventDescription":"This is the default pixel tracking page visits. For example - A person lands on your website pages.","eventName":"PageView","isStandardEvent":true,"pageUrl":"https://www.marclittlemore.com/bots/","raw":"https://www.facebook.com/tr/?id=290377285027331&ev=PageView&dl=https%3A%2F%2Fwww.marclittlemore.com%2Fbots%2F&rl=&if=false&ts=1789323490562&iw=false&sw=390&sh=844&v=2.9.398&r=stable&ec=0&o=4126&aems=0%3B0&fbp=fb.1.1789323490540.72708349120988118&cs_est=true&ler=empty&pmd[title]=Chatbots%20%26%20Messenger%20Marketing%20-%20Marc%20Littlemore&pmd[locale]=en_GB&pmd[description]=Learn%20more%20about%20automating%20your%20marketing%20using%20chatbots%20and%20Facebook%20Messenger.&plt=292.7000000476837&iss=1&imft=1&tz=0&it=1789323490425&coo=false&cdl=&expv2[0]=pl0&expv2[1]=el3&expv2[2]=bc1&expv2[3]=ra2&expv2[4]=rp2&expv2[5]=ct3&expv2[6]=hf0&expv2[7]=sd1&expv2[8]=sp1&expv2[9]=ek1&expv2[10]=pc1&expv2[11]=gs1&expv2[12]=zs1&expv2[13]=cp1&expv2[14]=es1&expv2[15]=ac1&expv2[16]=so1&expv2[17]=wc1&expv2[18]=la1&expv2[19]=sf1&expv2[20]=da1&expv2[21]=io1&expv2[22]=ae1&expv2[23]=sx1&expv2[24]=if1&expv2[25]=fd1&expv2[26]=bg1&expv2[27]=mg1&expv2[28]=kl1&expv2[29]=sg1&expv2[30]=mk1&expv2[31]=sn1&expv2[32]=ec1&expv2[33]=mp1&expv2[34]=ps1&expv2[35]=fx1&expv2[36]=vt1&expv2[37]=dp1&expv2[38]=fw1&expv2[39]=cn1&expv2[40]=tz1&expv2[41]=pe1&expv2[42]=ee1&expv2[43]=bu1&expv2[44]=ta1&expv2[45]=ot0&rqm=GET"},{"advancedMatchingParams":[],"dataParams":[],"eventDescription":"This is the default pixel tracking page visits. For example - A person lands on your website pages.","eventName":"PageView","isStandardEvent":true,"pageUrl":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","raw":"https://www.facebook.com/tr/?id=290377285027331&ev=PageView&dl=https%3A%2F%2Fwww.marclittlemore.com%2Fhow-to-unit-test-express-routes%2F&rl=&if=false&ts=1789323485116&iw=false&sw=390&sh=844&v=2.9.398&r=stable&ec=0&o=4126&aems=0%3B0&fbp=fb.1.1789323485099.505794948901375079&cs_est=true&ler=empty&pmd[title]=How%20To%20Unit%20Test%20Express%20Routes%20-%20Marc%20Littlemore&pmd[locale]=en_GB&pmd[description]=How%20to%20unit%20test%20Express%20routes%20and%20some%20reasons%20why%20you%20should%20do%20it.&plt=357.5&iss=1&imft=1&tz=0&it=1789323484906&coo=false&cdl=&expv2[0]=pl0&expv2[1]=el3&expv2[2]=bc1&expv2[3]=ra2&expv2[4]=rp2&expv2[5]=im1&expv2[6]=hf1&expv2[7]=sd1&expv2[8]=sp1&expv2[9]=ek1&expv2[10]=pc1&expv2[11]=gs1&expv2[12]=zs1&expv2[13]=cp1&expv2[14]=es1&expv2[15]=ac1&expv2[16]=so1&expv2[17]=wc1&expv2[18]=la1&expv2[19]=sf1&expv2[20]=da1&expv2[21]=io1&expv2[22]=ae1&expv2[23]=sx1&expv2[24]=if1&expv2[25]=fd1&expv2[26]=bg1&expv2[27]=mg1&expv2[28]=kl1&expv2[29]=sg1&expv2[30]=mk1&expv2[31]=sn1&expv2[32]=ec1&expv2[33]=mp1&expv2[34]=ps1&expv2[35]=fx1&expv2[36]=vt1&expv2[37]=dp1&expv2[38]=fw1&expv2[39]=cn1&expv2[40]=tz1&expv2[41]=pe1&expv2[42]=ee1&expv2[43]=bu1&expv2[44]=ta1&expv2[45]=ot0&rqm=GET"},{"advancedMatchingParams":[],"dataParams":[],"eventDescription":"This is the default pixel tracking page visits. For example - A person lands on your website pages.","eventName":"PageView","isStandardEvent":true,"pageUrl":"https://www.marclittlemore.com/","raw":"https://www.facebook.com/tr/?id=290377285027331&ev=PageView&dl=https%3A%2F%2Fwww.marclittlemore.com%2F&rl=&if=false&ts=1789323482631&iw=false&sw=390&sh=844&v=2.9.398&r=stable&ec=0&o=4126&aems=0%3B0&fbp=fb.1.1789323482602.124861178384782470&cs_est=true&ler=empty&pmd[title]=Hello%2C%20I%27m%20Marc%20Littlemore&pmd[locale]=en_GB&pmd[description]=Hello!%20I%27m%20Marc%20Littlemore%2C%20a%20Software%20Engineering%20Manager%20who%20writes%20about%20software%20development%20and%20technical%20leadership.&plt=836.6000001430511&iss=1&imft=1&tz=0&it=1789323481695&coo=false&cdl=&expv2[0]=pl0&expv2[1]=el2&expv2[2]=bc1&expv2[3]=ra2&expv2[4]=rp2&expv2[5]=im0&expv2[6]=hf1&expv2[7]=sd1&expv2[8]=sp1&expv2[9]=ek1&expv2[10]=pc1&expv2[11]=gs1&expv2[12]=zs1&expv2[13]=cp1&expv2[14]=es1&expv2[15]=ac1&expv2[16]=so1&expv2[17]=wc1&expv2[18]=la1&expv2[19]=sf1&expv2[20]=da1&expv2[21]=io1&expv2[22]=ae1&expv2[23]=sx1&expv2[24]=if1&expv2[25]=fd1&expv2[26]=bg1&expv2[27]=mg1&expv2[28]=kl1&expv2[29]=sg1&expv2[30]=mk1&expv2[31]=sn1&expv2[32]=ec1&expv2[33]=mp1&expv2[34]=ps1&expv2[35]=fx1&expv2[36]=vt1&expv2[37]=dp1&expv2[38]=fw1&expv2[39]=cn1&expv2[40]=tz1&expv2[41]=pe1&expv2[42]=ee1&expv2[43]=bu1&expv2[44]=ta1&expv2[45]=ot0&rqm=GET"}],"tiktok_pixel_events":[],"twitter_pixel_events":[],"google_analytics_events":[{"data":{"body":{},"filter":"$ping,third-party","listName":"easyprivacy.txt","query":{"aip":1,"cid":1181603350.1789324,"dma":1,"dma_cps":"a","frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6992v896163794za20g","ibt":1,"ngs":1,"npa":1,"rcb":12,"tag_exp":"115938465~115938469~118897920~118897930~120213116~120385422~120469145~120469153","tid":"G-Z3NPENEK2T","v":2}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","raw":"https://stats.g.doubleclick.net/g/collect?v=2&ngs=1&ibt=1&tid=G-Z3NPENEK2T&cid=1181603350.1789323481&gtm=45je6992v896163794za20g&rcb=12&aip=1&dma=1&dma_cps=a&gcd=13l3l3l2l1l1&npa=1&frm=0&tag_exp=115938465~115938469~118897920~118897930~120213116~120385422~120469145~120469153"}],"key_logging":{},"session_recorders":{},"third_party_trackers":[{"data":{"body":{},"filter":".facebook.com/tr/$image","listName":"easyprivacy.txt","query":{"aems":"0;0","cdl":"","coo":false,"cs_est":true,"dl":"https://www.marclittlemore.com/bots/","ec":0,"ev":"PageView","expv2[0]":"pl0","expv2[10]":"pc1","expv2[11]":"gs1","expv2[12]":"zs1","expv2[13]":"cp1","expv2[14]":"es1","expv2[15]":"ac1","expv2[16]":"so1","expv2[17]":"wc1","expv2[18]":"la1","expv2[19]":"sf1","expv2[1]":"el3","expv2[20]":"da1","expv2[21]":"io1","expv2[22]":"ae1","expv2[23]":"sx1","expv2[24]":"if1","expv2[25]":"fd1","expv2[26]":"bg1","expv2[27]":"mg1","expv2[28]":"kl1","expv2[29]":"sg1","expv2[2]":"bc1","expv2[30]":"mk1","expv2[31]":"sn1","expv2[32]":"ec1","expv2[33]":"mp1","expv2[34]":"ps1","expv2[35]":"fx1","expv2[36]":"vt1","expv2[37]":"dp1","expv2[38]":"fw1","expv2[39]":"cn1","expv2[3]":"ra2","expv2[40]":"tz1","expv2[41]":"pe1","expv2[42]":"ee1","expv2[43]":"bu1","expv2[44]":"ta1","expv2[45]":"ot0","expv2[4]":"rp2","expv2[5]":"ct3","expv2[6]":"hf0","expv2[7]":"sd1","expv2[8]":"sp1","expv2[9]":"ek1","fbp":"fb.1.1789323490540.72708349120988118","id":290377285027331,"if":false,"imft":1,"iss":1,"it":1789323490425,"iw":false,"ler":"empty","o":4126,"plt":292.7000000476837,"pmd[description]":"Learn more about automating your marketing using chatbots and Facebook Messenger.","pmd[locale]":"en_GB","pmd[title]":"Chatbots & Messenger Marketing - Marc Littlemore","r":"stable","rl":"","rqm":"GET","sh":844,"sw":390,"ts":1789323490562,"tz":0,"v":"2.9.398"}},"stack":[{"fileName":"https://www.marclittlemore.com/bots/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.facebook.com/tr/?id=290377285027331&ev=PageView&dl=https%3A%2F%2Fwww.marclittlemore.com%2Fbots%2F&rl=&if=false&ts=1789323490562&iw=false&sw=390&sh=844&v=2.9.398&r=stable&ec=0&o=4126&aems=0%3B0&fbp=fb.1.1789323490540.72708349120988118&cs_est=true&ler=empty&pmd[title]=Chatbots%20%26%20Messenger%20Marketing%20-%20Marc%20Littlemore&pmd[locale]=en_GB&pmd[description]=Learn%20more%20about%20automating%20your%20marketing%20using%20chatbots%20and%20Facebook%20Messenger.&plt=292.7000000476837&iss=1&imft=1&tz=0&it=1789323490425&coo=false&cdl=&expv2[0]=pl0&expv2[1]=el3&expv2[2]=bc1&expv2[3]=ra2&expv2[4]=rp2&expv2[5]=ct3&expv2[6]=hf0&expv2[7]=sd1&expv2[8]=sp1&expv2[9]=ek1&expv2[10]=pc1&expv2[11]=gs1&expv2[12]=zs1&expv2[13]=cp1&expv2[14]=es1&expv2[15]=ac1&expv2[16]=so1&expv2[17]=wc1&expv2[18]=la1&expv2[19]=sf1&expv2[20]=da1&expv2[21]=io1&expv2[22]=ae1&expv2[23]=sx1&expv2[24]=if1&expv2[25]=fd1&expv2[26]=bg1&expv2[27]=mg1&expv2[28]=kl1&expv2[29]=sg1&expv2[30]=mk1&expv2[31]=sn1&expv2[32]=ec1&expv2[33]=mp1&expv2[34]=ps1&expv2[35]=fx1&expv2[36]=vt1&expv2[37]=dp1&expv2[38]=fw1&expv2[39]=cn1&expv2[40]=tz1&expv2[41]=pe1&expv2[42]=ee1&expv2[43]=bu1&expv2[44]=ta1&expv2[45]=ot0&rqm=GET"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.marclittlemore.com/bots/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.google-analytics.com/analytics.js"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"cx":"c","gtm":null,"id":"G-Z3NPENEK2T"}},"stack":[{"fileName":"https://www.marclittlemore.com/bots/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-Z3NPENEK2T&cx=c&gtm=4e6992"},{"data":{"body":{},"filter":"||connect.facebook.net/signals/$third-party","listName":"easyprivacy.txt","query":{"domain":"www.marclittlemore.com","ex_m":"115,227,166,26,80,81,158,76,75,11,176,100,20,150,138,45,83,88,146,171,178,31,17,30,18,32,33,34,36,54,159,85,123,22,24,50,46,48,47,93,102,106,121,157,160,52,122,28,25,130,77,42,162,161,163,154,152,29,41,65,120,173,78,21,125,91,74,23,95,96,127,94,148,147,151,107,172,175,40,55,124,53,8,4,5,7,6,3,101,112,180,179,194,241,82,255,254,253,14,27,39,61,114,67,10,71,108,109,110,116,141,37,35,143,144,145,140,139,167,84,170,168,169,56,66,134,19,174,51,305,306,307,304,320,344,234,223,68,224,222,347,338,58,235,118,142,90,132,60,131,137,136,64,72,70,164,86,87,126,43,38,59,62,111,177,1,135,16,133,12,2,63,103,15,73,69,129,99,98,182,183,104,105,9,113,181,57,155,97,89,79,128,117,49,156,0,92,149,153,165,44,119,13,184","hme":"457e068698591ac437afb4b2e5fbe0266b08712615b8792436a91385ebda0da3","im":1,"r":"stable","v":"2.9.398"}},"stack":[{"fileName":"https://www.marclittlemore.com/bots/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://connect.facebook.net/signals/config/290377285027331?v=2.9.398&r=stable&domain=www.marclittlemore.com&im=1&hme=457e068698591ac437afb4b2e5fbe0266b08712615b8792436a91385ebda0da3&ex_m=115%2C227%2C166%2C26%2C80%2C81%2C158%2C76%2C75%2C11%2C176%2C100%2C20%2C150%2C138%2C45%2C83%2C88%2C146%2C171%2C178%2C31%2C17%2C30%2C18%2C32%2C33%2C34%2C36%2C54%2C159%2C85%2C123%2C22%2C24%2C50%2C46%2C48%2C47%2C93%2C102%2C106%2C121%2C157%2C160%2C52%2C122%2C28%2C25%2C130%2C77%2C42%2C162%2C161%2C163%2C154%2C152%2C29%2C41%2C65%2C120%2C173%2C78%2C21%2C125%2C91%2C74%2C23%2C95%2C96%2C127%2C94%2C148%2C147%2C151%2C107%2C172%2C175%2C40%2C55%2C124%2C53%2C8%2C4%2C5%2C7%2C6%2C3%2C101%2C112%2C180%2C179%2C194%2C241%2C82%2C255%2C254%2C253%2C14%2C27%2C39%2C61%2C114%2C67%2C10%2C71%2C108%2C109%2C110%2C116%2C141%2C37%2C35%2C143%2C144%2C145%2C140%2C139%2C167%2C84%2C170%2C168%2C169%2C56%2C66%2C134%2C19%2C174%2C51%2C305%2C306%2C307%2C304%2C320%2C344%2C234%2C223%2C68%2C224%2C222%2C347%2C338%2C58%2C235%2C118%2C142%2C90%2C132%2C60%2C131%2C137%2C136%2C64%2C72%2C70%2C164%2C86%2C87%2C126%2C43%2C38%2C59%2C62%2C111%2C177%2C1%2C135%2C16%2C133%2C12%2C2%2C63%2C103%2C15%2C73%2C69%2C129%2C99%2C98%2C182%2C183%2C104%2C105%2C9%2C113%2C181%2C57%2C155%2C97%2C89%2C79%2C128%2C117%2C49%2C156%2C0%2C92%2C149%2C153%2C165%2C44%2C119%2C13%2C184"},{"data":{"body":{},"filter":"/fbevents.js","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.marclittlemore.com/bots/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://connect.facebook.net/en_US/fbevents.js"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"UA-810717-3"}},"stack":[{"fileName":"https://www.marclittlemore.com/bots/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=UA-810717-3"},{"data":{"body":{},"filter":".facebook.com/tr/$image","listName":"easyprivacy.txt","query":{"aems":"0;0","cdl":"","coo":false,"cs_est":true,"dl":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","ec":0,"ev":"PageView","expv2[0]":"pl0","expv2[10]":"pc1","expv2[11]":"gs1","expv2[12]":"zs1","expv2[13]":"cp1","expv2[14]":"es1","expv2[15]":"ac1","expv2[16]":"so1","expv2[17]":"wc1","expv2[18]":"la1","expv2[19]":"sf1","expv2[1]":"el3","expv2[20]":"da1","expv2[21]":"io1","expv2[22]":"ae1","expv2[23]":"sx1","expv2[24]":"if1","expv2[25]":"fd1","expv2[26]":"bg1","expv2[27]":"mg1","expv2[28]":"kl1","expv2[29]":"sg1","expv2[2]":"bc1","expv2[30]":"mk1","expv2[31]":"sn1","expv2[32]":"ec1","expv2[33]":"mp1","expv2[34]":"ps1","expv2[35]":"fx1","expv2[36]":"vt1","expv2[37]":"dp1","expv2[38]":"fw1","expv2[39]":"cn1","expv2[3]":"ra2","expv2[40]":"tz1","expv2[41]":"pe1","expv2[42]":"ee1","expv2[43]":"bu1","expv2[44]":"ta1","expv2[45]":"ot0","expv2[4]":"rp2","expv2[5]":"im1","expv2[6]":"hf1","expv2[7]":"sd1","expv2[8]":"sp1","expv2[9]":"ek1","fbp":"fb.1.1789323485099.505794948901375079","id":290377285027331,"if":false,"imft":1,"iss":1,"it":1789323484906,"iw":false,"ler":"empty","o":4126,"plt":357.5,"pmd[description]":"How to unit test Express routes and some reasons why you should do it.","pmd[locale]":"en_GB","pmd[title]":"How To Unit Test Express Routes - Marc Littlemore","r":"stable","rl":"","rqm":"GET","sh":844,"sw":390,"ts":1789323485116,"tz":0,"v":"2.9.398"}},"stack":[{"fileName":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.facebook.com/tr/?id=290377285027331&ev=PageView&dl=https%3A%2F%2Fwww.marclittlemore.com%2Fhow-to-unit-test-express-routes%2F&rl=&if=false&ts=1789323485116&iw=false&sw=390&sh=844&v=2.9.398&r=stable&ec=0&o=4126&aems=0%3B0&fbp=fb.1.1789323485099.505794948901375079&cs_est=true&ler=empty&pmd[title]=How%20To%20Unit%20Test%20Express%20Routes%20-%20Marc%20Littlemore&pmd[locale]=en_GB&pmd[description]=How%20to%20unit%20test%20Express%20routes%20and%20some%20reasons%20why%20you%20should%20do%20it.&plt=357.5&iss=1&imft=1&tz=0&it=1789323484906&coo=false&cdl=&expv2[0]=pl0&expv2[1]=el3&expv2[2]=bc1&expv2[3]=ra2&expv2[4]=rp2&expv2[5]=im1&expv2[6]=hf1&expv2[7]=sd1&expv2[8]=sp1&expv2[9]=ek1&expv2[10]=pc1&expv2[11]=gs1&expv2[12]=zs1&expv2[13]=cp1&expv2[14]=es1&expv2[15]=ac1&expv2[16]=so1&expv2[17]=wc1&expv2[18]=la1&expv2[19]=sf1&expv2[20]=da1&expv2[21]=io1&expv2[22]=ae1&expv2[23]=sx1&expv2[24]=if1&expv2[25]=fd1&expv2[26]=bg1&expv2[27]=mg1&expv2[28]=kl1&expv2[29]=sg1&expv2[30]=mk1&expv2[31]=sn1&expv2[32]=ec1&expv2[33]=mp1&expv2[34]=ps1&expv2[35]=fx1&expv2[36]=vt1&expv2[37]=dp1&expv2[38]=fw1&expv2[39]=cn1&expv2[40]=tz1&expv2[41]=pe1&expv2[42]=ee1&expv2[43]=bu1&expv2[44]=ta1&expv2[45]=ot0&rqm=GET"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.google-analytics.com/analytics.js"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"cx":"c","gtm":null,"id":"G-Z3NPENEK2T"}},"stack":[{"fileName":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-Z3NPENEK2T&cx=c&gtm=4e6992"},{"data":{"body":{},"filter":"||connect.facebook.net/signals/$third-party","listName":"easyprivacy.txt","query":{"domain":"www.marclittlemore.com","ex_m":"115,227,166,26,80,81,158,76,75,11,176,100,20,150,138,45,83,88,146,171,178,31,17,30,18,32,33,34,36,54,159,85,123,22,24,50,46,48,47,93,102,106,121,157,160,52,122,28,25,130,77,42,162,161,163,154,152,29,41,65,120,173,78,21,125,91,74,23,95,96,127,94,148,147,151,107,172,175,40,55,124,53,8,4,5,7,6,3,101,112,180,179,194,241,82,255,254,253,14,27,39,61,114,67,10,71,108,109,110,116,141,37,35,143,144,145,140,139,167,84,170,168,169,56,66,134,19,174,51,305,306,307,304,320,344,234,223,68,224,222,347,338,58,235,118,142,90,132,60,131,137,136,64,72,70,164,86,87,126,43,38,59,62,111,177,1,135,16,133,12,2,63,103,15,73,69,129,99,98,182,183,104,105,9,113,181,57,155,97,89,79,128,117,49,156,0,92,149,153,165,44,119,13,184","hme":"457e068698591ac437afb4b2e5fbe0266b08712615b8792436a91385ebda0da3","im":1,"r":"stable","v":"2.9.398"}},"stack":[{"fileName":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://connect.facebook.net/signals/config/290377285027331?v=2.9.398&r=stable&domain=www.marclittlemore.com&im=1&hme=457e068698591ac437afb4b2e5fbe0266b08712615b8792436a91385ebda0da3&ex_m=115%2C227%2C166%2C26%2C80%2C81%2C158%2C76%2C75%2C11%2C176%2C100%2C20%2C150%2C138%2C45%2C83%2C88%2C146%2C171%2C178%2C31%2C17%2C30%2C18%2C32%2C33%2C34%2C36%2C54%2C159%2C85%2C123%2C22%2C24%2C50%2C46%2C48%2C47%2C93%2C102%2C106%2C121%2C157%2C160%2C52%2C122%2C28%2C25%2C130%2C77%2C42%2C162%2C161%2C163%2C154%2C152%2C29%2C41%2C65%2C120%2C173%2C78%2C21%2C125%2C91%2C74%2C23%2C95%2C96%2C127%2C94%2C148%2C147%2C151%2C107%2C172%2C175%2C40%2C55%2C124%2C53%2C8%2C4%2C5%2C7%2C6%2C3%2C101%2C112%2C180%2C179%2C194%2C241%2C82%2C255%2C254%2C253%2C14%2C27%2C39%2C61%2C114%2C67%2C10%2C71%2C108%2C109%2C110%2C116%2C141%2C37%2C35%2C143%2C144%2C145%2C140%2C139%2C167%2C84%2C170%2C168%2C169%2C56%2C66%2C134%2C19%2C174%2C51%2C305%2C306%2C307%2C304%2C320%2C344%2C234%2C223%2C68%2C224%2C222%2C347%2C338%2C58%2C235%2C118%2C142%2C90%2C132%2C60%2C131%2C137%2C136%2C64%2C72%2C70%2C164%2C86%2C87%2C126%2C43%2C38%2C59%2C62%2C111%2C177%2C1%2C135%2C16%2C133%2C12%2C2%2C63%2C103%2C15%2C73%2C69%2C129%2C99%2C98%2C182%2C183%2C104%2C105%2C9%2C113%2C181%2C57%2C155%2C97%2C89%2C79%2C128%2C117%2C49%2C156%2C0%2C92%2C149%2C153%2C165%2C44%2C119%2C13%2C184"},{"data":{"body":{},"filter":"/fbevents.js","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://connect.facebook.net/en_US/fbevents.js"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"UA-810717-3"}},"stack":[{"fileName":"https://www.marclittlemore.com/how-to-unit-test-express-routes/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=UA-810717-3"},{"data":{"body":{},"filter":".facebook.com/tr/$image","listName":"easyprivacy.txt","query":{"aems":"0;0","cdl":"","coo":false,"cs_est":true,"dl":"https://www.marclittlemore.com/","ec":0,"ev":"PageView","expv2[0]":"pl0","expv2[10]":"pc1","expv2[11]":"gs1","expv2[12]":"zs1","expv2[13]":"cp1","expv2[14]":"es1","expv2[15]":"ac1","expv2[16]":"so1","expv2[17]":"wc1","expv2[18]":"la1","expv2[19]":"sf1","expv2[1]":"el2","expv2[20]":"da1","expv2[21]":"io1","expv2[22]":"ae1","expv2[23]":"sx1","expv2[24]":"if1","expv2[25]":"fd1","expv2[26]":"bg1","expv2[27]":"mg1","expv2[28]":"kl1","expv2[29]":"sg1","expv2[2]":"bc1","expv2[30]":"mk1","expv2[31]":"sn1","expv2[32]":"ec1","expv2[33]":"mp1","expv2[34]":"ps1","expv2[35]":"fx1","expv2[36]":"vt1","expv2[37]":"dp1","expv2[38]":"fw1","expv2[39]":"cn1","expv2[3]":"ra2","expv2[40]":"tz1","expv2[41]":"pe1","expv2[42]":"ee1","expv2[43]":"bu1","expv2[44]":"ta1","expv2[45]":"ot0","expv2[4]":"rp2","expv2[5]":"im0","expv2[6]":"hf1","expv2[7]":"sd1","expv2[8]":"sp1","expv2[9]":"ek1","fbp":"fb.1.1789323482602.124861178384782470","id":290377285027331,"if":false,"imft":1,"iss":1,"it":1789323481695,"iw":false,"ler":"empty","o":4126,"plt":836.6000001430511,"pmd[description]":"Hello! I'm Marc Littlemore, a Software Engineering Manager who writes about software development and technical leadership.","pmd[locale]":"en_GB","pmd[title]":"Hello, I'm Marc Littlemore","r":"stable","rl":"","rqm":"GET","sh":844,"sw":390,"ts":1789323482631,"tz":0,"v":"2.9.398"}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.facebook.com/tr/?id=290377285027331&ev=PageView&dl=https%3A%2F%2Fwww.marclittlemore.com%2F&rl=&if=false&ts=1789323482631&iw=false&sw=390&sh=844&v=2.9.398&r=stable&ec=0&o=4126&aems=0%3B0&fbp=fb.1.1789323482602.124861178384782470&cs_est=true&ler=empty&pmd[title]=Hello%2C%20I%27m%20Marc%20Littlemore&pmd[locale]=en_GB&pmd[description]=Hello!%20I%27m%20Marc%20Littlemore%2C%20a%20Software%20Engineering%20Manager%20who%20writes%20about%20software%20development%20and%20technical%20leadership.&plt=836.6000001430511&iss=1&imft=1&tz=0&it=1789323481695&coo=false&cdl=&expv2[0]=pl0&expv2[1]=el2&expv2[2]=bc1&expv2[3]=ra2&expv2[4]=rp2&expv2[5]=im0&expv2[6]=hf1&expv2[7]=sd1&expv2[8]=sp1&expv2[9]=ek1&expv2[10]=pc1&expv2[11]=gs1&expv2[12]=zs1&expv2[13]=cp1&expv2[14]=es1&expv2[15]=ac1&expv2[16]=so1&expv2[17]=wc1&expv2[18]=la1&expv2[19]=sf1&expv2[20]=da1&expv2[21]=io1&expv2[22]=ae1&expv2[23]=sx1&expv2[24]=if1&expv2[25]=fd1&expv2[26]=bg1&expv2[27]=mg1&expv2[28]=kl1&expv2[29]=sg1&expv2[30]=mk1&expv2[31]=sn1&expv2[32]=ec1&expv2[33]=mp1&expv2[34]=ps1&expv2[35]=fx1&expv2[36]=vt1&expv2[37]=dp1&expv2[38]=fw1&expv2[39]=cn1&expv2[40]=tz1&expv2[41]=pe1&expv2[42]=ee1&expv2[43]=bu1&expv2[44]=ta1&expv2[45]=ot0&rqm=GET"},{"data":{"body":{},"filter":"||connect.facebook.net/signals/$third-party","listName":"easyprivacy.txt","query":{"domain":"www.marclittlemore.com","ex_m":"115,227,166,26,80,81,158,76,75,11,176,100,20,150,138,45,83,88,146,171,178,31,17,30,18,32,33,34,36,54,159,85,123,22,24,50,46,48,47,93,102,106,121,157,160,52,122,28,25,130,77,42,162,161,163,154,152,29,41,65,120,173,78,21,125,91,74,23,95,96,127,94,148,147,151,107,172,175,40,55,124,53,8,4,5,7,6,3,101,112,180,179,194,241,82,255,254,253,14,27,39,61,114,67,10,71,108,109,110,116,141,37,35,143,144,145,140,139,167,84,170,168,169,56,66,134,19,174,51,305,306,307,304,320,344,234,223,68,224,222,347,338,58,235,118,142,90,132,60,131,137,136,64,72,70,164,86,87,126,43,38,59,62,111,177,1,135,16,133,12,2,63,103,15,73,69,129,99,98,182,183,104,105,9,113,181,57,155,97,89,79,128,117,49,156,0,92,149,153,165,44,119,13,184","hme":"457e068698591ac437afb4b2e5fbe0266b08712615b8792436a91385ebda0da3","im":1,"r":"stable","v":"2.9.398"}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://connect.facebook.net/signals/config/290377285027331?v=2.9.398&r=stable&domain=www.marclittlemore.com&im=1&hme=457e068698591ac437afb4b2e5fbe0266b08712615b8792436a91385ebda0da3&ex_m=115%2C227%2C166%2C26%2C80%2C81%2C158%2C76%2C75%2C11%2C176%2C100%2C20%2C150%2C138%2C45%2C83%2C88%2C146%2C171%2C178%2C31%2C17%2C30%2C18%2C32%2C33%2C34%2C36%2C54%2C159%2C85%2C123%2C22%2C24%2C50%2C46%2C48%2C47%2C93%2C102%2C106%2C121%2C157%2C160%2C52%2C122%2C28%2C25%2C130%2C77%2C42%2C162%2C161%2C163%2C154%2C152%2C29%2C41%2C65%2C120%2C173%2C78%2C21%2C125%2C91%2C74%2C23%2C95%2C96%2C127%2C94%2C148%2C147%2C151%2C107%2C172%2C175%2C40%2C55%2C124%2C53%2C8%2C4%2C5%2C7%2C6%2C3%2C101%2C112%2C180%2C179%2C194%2C241%2C82%2C255%2C254%2C253%2C14%2C27%2C39%2C61%2C114%2C67%2C10%2C71%2C108%2C109%2C110%2C116%2C141%2C37%2C35%2C143%2C144%2C145%2C140%2C139%2C167%2C84%2C170%2C168%2C169%2C56%2C66%2C134%2C19%2C174%2C51%2C305%2C306%2C307%2C304%2C320%2C344%2C234%2C223%2C68%2C224%2C222%2C347%2C338%2C58%2C235%2C118%2C142%2C90%2C132%2C60%2C131%2C137%2C136%2C64%2C72%2C70%2C164%2C86%2C87%2C126%2C43%2C38%2C59%2C62%2C111%2C177%2C1%2C135%2C16%2C133%2C12%2C2%2C63%2C103%2C15%2C73%2C69%2C129%2C99%2C98%2C182%2C183%2C104%2C105%2C9%2C113%2C181%2C57%2C155%2C97%2C89%2C79%2C128%2C117%2C49%2C156%2C0%2C92%2C149%2C153%2C165%2C44%2C119%2C13%2C184"},{"data":{"body":{},"filter":"/ga-audiences?","listName":"easyprivacy.txt","query":{"_r":4,"aip":1,"cid":1181603350.1789324,"dma":1,"dma_cps":"a","frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6992v896163794za20g","ibt":1,"ngs":1,"npa":1,"rcb":12,"slf_rd":1,"t":"sr","tag_exp":"115938465~115938469~118897920~118897930~120213116~120385422~120469145~120469153","tid":"G-Z3NPENEK2T","v":1,"z":912882332}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.google.fr/ads/ga-audiences?v=1&t=sr&slf_rd=1&_r=4&ngs=1&ibt=1&tid=G-Z3NPENEK2T&cid=1181603350.1789323481&gtm=45je6992v896163794za20g&rcb=12&aip=1&dma=1&dma_cps=a&gcd=13l3l3l2l1l1&npa=1&frm=0&tag_exp=115938465~115938469~118897920~118897930~120213116~120385422~120469145~120469153&z=912882332"},{"data":{"body":{},"filter":"||analytics.google.com^$third-party","listName":"easyprivacy.txt","query":{"_eu":"AAAIACAC","_fv":1,"_gaz":1,"_p":1789323480964,"_s":1,"_ss":1,"are":1,"cid":1181603350.1789324,"dl":"https://www.marclittlemore.com/","dma":1,"dma_cps":"a","dt":"Hello, I'm Marc Littlemore","en":"page_view","frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6992v896163794za20g","ibt":1,"ngs":1,"npa":1,"pscdl":"","rcb":12,"sct":1,"seg":0,"sid":1789323481,"sr":"390x844","tag_exp":"115938465~115938469~118897920~118897930~120213116~120385422~120469145~120469153","tfd":1099,"tid":"G-Z3NPENEK2T","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.analytics.google.com/g/collect?v=2&tid=G-Z3NPENEK2T&gtm=45je6992v896163794za20g&_p=1789323480964&_gaz=1&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&_eu=AAAIACAC&are=1&cid=1181603350.1789323481&frm=0&ibt=1&ngs=1&pscdl=&rcb=12&sr=390x844&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115938465~115938469~118897920~118897930~120213116~120385422~120469145~120469153&sid=1789323481&sct=1&seg=0&dl=https%3A%2F%2Fwww.marclittlemore.com%2F&dt=Hello%2C%20I%27m%20Marc%20Littlemore&en=page_view&_fv=1&_ss=1&tfd=1099"},{"data":{"body":{},"filter":"/fbevents.js","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://connect.facebook.net/en_US/fbevents.js"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.google-analytics.com/analytics.js"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"cx":"c","gtm":null,"id":"G-Z3NPENEK2T"}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-Z3NPENEK2T&cx=c&gtm=4e6992"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"UA-810717-3"}},"stack":[{"fileName":"https://www.marclittlemore.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=UA-810717-3"}]}}