From 00d0917bb9114a0442fd389db7bae4491e3ae50e Mon Sep 17 00:00:00 2001 From: Dhruv Date: Thu, 12 Oct 2023 18:24:06 +0530 Subject: [PATCH] resolved comments and fixed test cases --- __test__/index.test.js | 35 +++++++++++++++++++++++++---------- js/index.js | 13 ++++++++----- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/__test__/index.test.js b/__test__/index.test.js index 4c7d2524..236a60d0 100644 --- a/__test__/index.test.js +++ b/__test__/index.test.js @@ -1,6 +1,5 @@ const puppeteer = require('puppeteer'); const timeout = 25000; -const checkDialog = require('../js/index'); describe('Dummy Test ', () => { beforeAll(async () => { @@ -25,15 +24,31 @@ describe('Dummy Test ', () => { ); }); -describe('index function test case', () => { - test('should show dialog if open in phone', () => { - const regexp = /android|iphone|kindle|ipad/i; // for Mobile phone - const result = checkDialog(regexp); - expect(result).toBe('true'); +describe('Test index function ', () => { + beforeAll(async () => { + browser = await puppeteer.launch({ + headless: 'new', + }); + page = await browser.newPage(); + await page.goto('https://www.realdevsquad.com/', { + waitUntil: 'domcontentloaded', + }); }); - test(`don't show dialog if not open in phone`, () => { - const regexp = /Windows|macOS|/i; // for PC - const result = checkDialog(regexp); - expect(result).toBe('false'); + + afterAll(async () => { + await browser.close(); }); + + test( + 'Dialog close', + async () => { + let dialogOpened = false; + page.on('dialog', async (dialog) => { + dialogOpened = true; + await dialog.dismiss(); + }); + expect(dialogOpened).toBe(false); + }, + timeout, + ); }); diff --git a/js/index.js b/js/index.js index cdb5689d..a77ce7ab 100644 --- a/js/index.js +++ b/js/index.js @@ -16,13 +16,13 @@ let memberSection = document.getElementById('members'); let regexp = /android|iphone|kindle|ipad/i; isOpenInPhone(regexp); -export function isOpenInPhone(type) { +function isOpenInPhone(type) { let details = navigator.userAgent; let isMobileDevice = type.test(details); if (isMobileDevice) { openDialog(); - document.getElementById('okayBt').addEventListener('click', openApp); + document.getElementById('okayBt').addEventListener('click', openRDSApp); document.getElementById('cancleBt').addEventListener('click', closeDialog); return true; } else { @@ -43,7 +43,7 @@ function openRDSApp() { var flag = false; var appScheme = 'app://realdevsquad.com'; var fallbackURL = - 'https://play.google.com/store/apps/details?id=com.github.android'; // It will replace with app playstore url + 'https://play.google.com/store/apps/details?id=com.github.android'; // For demo. It will replace with app playstore url var userAgent = navigator.userAgent || navigator.vendor || window.opera; if (/android/i.test(userAgent)) { @@ -66,10 +66,10 @@ function openRDSApp() { document.body.removeChild(iframe); window.location.href = fallbackURL; } - }, 1000); // Adjust the delay as needed + }, 1000); } else { // If the user is not on an Android device, provide a fallback action - window.location.href = fallbackURL; // Replace with your fallback URL + window.location.href = fallbackURL; } } @@ -162,3 +162,6 @@ modalTriggers.forEach((trigger) => { }); }); }); +module.exports = { + isOpenInPhone, +};