![](https://tarheels.live/comp523s24teamn/wp-content/uploads/sites/5256/2024/05/Testing-Screenshot.png)
Steps to Run Test:
From terminal:
- Cd tests
- Node claude.test.js
- Npm test to run test
- Tests % node claude.test.js
Output of Tests:
![](https://tarheels.live/comp523s24teamn/wp-content/uploads/sites/5256/2024/05/Testing-Output-1.png)
Tests in code form:
sync function testScraping({url = 'https://doorstep.ai', verbose = false}) {
try {
let data = await scrape(url);
if (!data) {
throw new Error("empty return");
}
verbose && console.log("SCRAPED SUCCESS");
return true
} catch (err) {
verbose && console.error("ERR: testScraping - scraping.test.ts")
verbose && console.error(err);
return false
}
}
async function noHTTPS({url = 'google.com', verbose = false}) {
try {
let data = await scrape(url);
if (data === "") {
verbose && console.log("DETECT NO HTTPS SUCCESS");
return true
} else {
throw new Error("non-empty return");
}
} catch (err) {
verbose && console.error("ERR: noHTTPS - scraping.test.ts")
verbose && console.error(err);
return false
}
}
async function testInvalidURL({url = 'https://non-existent.no', verbose = false}) {
try {
let data = await scrape(url);
if (data === "") {
verbose && console.log("INVALID URL TEST SUCCESS");
return true
} else {
throw new Error("Non-empty return for invalid URL");
}
} catch (err) {
verbose && console.error("ERR: testInvalidURL - scraping.test.ts");
verbose && console.error(err);
return false
}
}
async function testEmptyURL({verbose = false}) {
try {
let data = await scrape('');
if (data === "") {
verbose && console.log("EMPTY URL TEST SUCCESS");
return true
} else {
throw new Error("Non-empty return for empty URL");
}
} catch (err) {
verbose && console.error("ERR: testEmptyURL - scraping.test.ts");
verbose && console.error(err);
return false
}
}
async function completeScrapingTests({verbose = false}) {
const [
testScrapingRes,
noHTTPSRes,
testInvalidURLRes,
testEmptyURLRes
] = await Promise.all([
testScraping({verbose}),
noHTTPS({verbose}),
testInvalidURL({verbose}),
testEmptyURL({verbose})
async function testGetClassification({verbose = false}) { try { let allowedClassifications: string[] = ["Technology", "Business", "Health", "Science", "Education", "Entertainment", "Sports", "Politics", "Other"] let data = await getClassification(summary); if (data in allowedClassifications) { verbose && console.log(data) verbose && console.log("GET CLASSIFICATION SUCCESS"); summary = data // for use in next test return true } else { throw new Error("empty return"); } } catch (err) { verbose && console.error("ERR: testGetSummary - claude.test.ts"); verbose && console.error(err); return false } } async function completeClaudeTests({verbose = false}) { let testGetSummaryRes = await testGetSummary({verbose}) let testGetClassificationRes = await testGetClassification({verbose}) return { testGetSummaryRes, testGetClassificationRes } } export { completeClaudeTests