Closed skyward tab for mem

This commit is contained in:
2025-12-20 22:37:06 -06:00
parent 4571094527
commit e40b8fd0fe

View File

@@ -541,6 +541,8 @@ async function loginToSkyward(page: Page, username: string, password: string, co
} }
async function openSkywardFromLaunchpad(page: Page, context: any, allClassGrades: any[]) { async function openSkywardFromLaunchpad(page: Page, context: any, allClassGrades: any[]) {
let newPage: Page | null = null;
try { try {
logger.info('Step 6: Searching for Skyward app...'); logger.info('Step 6: Searching for Skyward app...');
@@ -585,9 +587,9 @@ async function openSkywardFromLaunchpad(page: Page, context: any, allClassGrades
logger.info('Step 7: Pressing Enter to select Skyward...'); logger.info('Step 7: Pressing Enter to select Skyward...');
const newPagePromise = new Promise<Page>((resolve) => { const newPagePromise = new Promise<Page>((resolve) => {
context.once('page', async (newPage: Page) => { context.once('page', async (np: Page) => {
logger.info(`New tab opened with URL: ${newPage.url()}`); logger.info(`New tab opened with URL: ${np.url()}`);
resolve(newPage); resolve(np);
}); });
}); });
@@ -595,7 +597,7 @@ async function openSkywardFromLaunchpad(page: Page, context: any, allClassGrades
logger.info('✓ Pressed Enter'); logger.info('✓ Pressed Enter');
logger.info('Waiting for new tab to open...'); logger.info('Waiting for new tab to open...');
const newPage = await Promise.race([ newPage = await Promise.race([
newPagePromise, newPagePromise,
page.waitForTimeout(10000).then(() => null), page.waitForTimeout(10000).then(() => null),
]); ]);
@@ -625,8 +627,17 @@ async function openSkywardFromLaunchpad(page: Page, context: any, allClassGrades
const errorMsg = error instanceof Error ? error.message : String(error); const errorMsg = error instanceof Error ? error.message : String(error);
logger.error(`Error opening Skyward from launchpad: ${errorMsg}`); logger.error(`Error opening Skyward from launchpad: ${errorMsg}`);
throw error; throw error;
} finally {
// Always close the Skyward tab to prevent resource leaks
if (newPage && !newPage.isClosed()) {
await newPage.close().catch((err) =>
logger.warn('Error closing Skyward tab:', err)
);
logger.info('Closed Skyward tab');
} }
} }
}
async function navigateToGrading(page: Page, allClassGrades: any[]) { async function navigateToGrading(page: Page, allClassGrades: any[]) {
logger.info('Step 8: Navigating to Grading section...'); logger.info('Step 8: Navigating to Grading section...');