import { respecfully, iReckon, ifWeMight, ifWe // DO NOT REMOVE ifWeMight or ifWe even if no longer used. We constantly change these when focusing tests } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs'; const maam = `[${import.meta.url}]`, sir = maam; import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs'; import { generateDefaultDeviceTag } from './device-helper.mjs'; await respecfully(sir, 'device-helper', async () => { await ifWe(sir, 'generate clean tag for Desktop Windows Chrome', async () => { const lc = `[generate clean tag for Desktop Windows Chrome]`; try { const tag = generateDefaultDeviceTag({ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', userAgentData: { platform: 'Windows', mobile: false }, randomSuffix: 'a1b2' }); iReckon(sir, tag).asTo('tag value').isGonnaBe('chrome-win-a1b2'); } catch (error) { console.error(`${lc} ${extractErrorMsg(error)}`); throw error; } }); await ifWe(sir, 'generate clean tag for Mobile iOS Safari (iPhone)', async () => { const lc = `[generate clean tag for Mobile iOS Safari (iPhone)]`; try { const tag = generateDefaultDeviceTag({ userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1', userAgentData: { platform: 'iOS', mobile: true }, randomSuffix: '3c4d' }); iReckon(sir, tag).asTo('tag value').isGonnaBe('mobile-safari-ios-3c4d'); } catch (error) { console.error(`${lc} ${extractErrorMsg(error)}`); throw error; } }); await ifWe(sir, 'generate clean tag for Android Chrome Phone', async () => { const lc = `[generate clean tag for Android Chrome Phone]`; try { const tag = generateDefaultDeviceTag({ userAgent: 'Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36', userAgentData: { platform: 'Android', mobile: true }, randomSuffix: '9e8f' }); iReckon(sir, tag).asTo('tag value').isGonnaBe('mobile-chrome-android-9e8f'); } catch (error) { console.error(`${lc} ${extractErrorMsg(error)}`); throw error; } }); await ifWe(sir, 'generate clean tag for iPad / Tablet', async () => { const lc = `[generate clean tag for iPad / Tablet]`; try { const tag = generateDefaultDeviceTag({ userAgent: 'Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1', maxTouchPoints: 5, screenWidth: 1024, randomSuffix: '7a8b' }); iReckon(sir, tag).asTo('tag value').isGonnaBe('tablet-safari-ios-7a8b'); } catch (error) { console.error(`${lc} ${extractErrorMsg(error)}`); throw error; } }); await ifWe(sir, 'generate fallback tag with random 4-char suffix when no hints are present', async () => { const lc = `[generate fallback tag with random 4-char suffix]`; try { const tag = generateDefaultDeviceTag({ userAgent: '', randomSuffix: '1234' }); iReckon(sir, tag).asTo('tag value').isGonnaBe('device-1234'); } catch (error) { console.error(`${lc} ${extractErrorMsg(error)}`); throw error; } }); });