mirror of
				https://github.com/cse110-fa22-group29/cse110-fa22-group29.git
				synced 2025-10-31 03:46:50 +00:00 
			
		
		
		
	update tests to match new tag and sorting helper prototypes,
remove getTopReviewsFromStorage and getReviewsByTag from localStorage and main Signed-off-by: Arthur Lu <learthurgo@gmail.com>
This commit is contained in:
		| @@ -164,48 +164,6 @@ function addTagsToStorage(ID, addedTags) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Returns the top n reviews by ID. If there are less than n reviews, returns the most possible.  | ||||
|  * @param {number} n number of reviews to return | ||||
|  * @returns {Array} list of n reviews that are the top rated | ||||
|  */ | ||||
| //legacy | ||||
| export function getTopReviewsFromStorage(n) { | ||||
| 	let resultArr = []; | ||||
| 	for(let i = 5; i > 0; i--){ | ||||
| 		let starArr = JSON.parse(localStorage.getItem(`star${i}`)); | ||||
| 		if(!starArr){ | ||||
| 			continue; | ||||
| 		} | ||||
| 		for(let j = starArr.length - 1; j >= 0; j--) { | ||||
| 			let review = JSON.parse(localStorage.getItem(`review${starArr[j]}`)) | ||||
| 			resultArr.push(review); | ||||
| 			if(resultArr.length == n) { | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 		if(resultArr.length == n) { | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| 	return resultArr; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Returns all reviews which contain the same tag specified.  | ||||
|  * @param {string} tag to filter by | ||||
|  * @returns {Object} list of reviews that all contain the specified tag | ||||
|  */ | ||||
| //legacy | ||||
| export function getReviewsByTag(tag) { | ||||
| 	let reviewArr = []; | ||||
| 	let tagArr = JSON.parse(localStorage.getItem("!" + tag.toLowerCase())); | ||||
| 	for (let i in tagArr){ | ||||
| 		reviewArr.push(JSON.parse(localStorage.getItem(`review${tagArr[i]}`))); | ||||
| 	} | ||||
| 	return reviewArr; | ||||
| } | ||||
|  | ||||
| // legacy function | ||||
| export function getAllReviewsFromStorage() { | ||||
| 	if (!(localStorage.getItem("activeIDS"))) { | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| import {strict as assert} from "node:assert"; | ||||
| import {describe, it, before, after} from "mocha"; | ||||
| import {newReviewToStorage, getReviewFromStorage, updateReviewToStorage, deleteReviewFromStorage, getAllReviewsFromStorage, getTopReviewsFromStorage, getReviewsByTag} from "./localStorage.js"; | ||||
| import {newReviewToStorage, getReviewFromStorage, updateReviewToStorage, deleteReviewFromStorage, getAllReviewsFromStorage, getIDsByTag, getTopIDsFromStorage} from "./localStorage.js"; | ||||
|  | ||||
| describe("test CRUD localStorage interaction", () => { | ||||
| 	 | ||||
| @@ -108,6 +108,7 @@ describe("test sort/filter localStorage interaction", () => { | ||||
| 	 | ||||
| 	before(() => { | ||||
| 		localStorage.clear(); | ||||
| 		getAllReviewsFromStorage(); | ||||
| 	}); | ||||
|  | ||||
| 	it("add sample data for sort and filter", () => { | ||||
| @@ -116,7 +117,7 @@ describe("test sort/filter localStorage interaction", () => { | ||||
| 				"imgSrc": `sample src ${i}`, | ||||
| 				"mealName": `sample name ${i}`, | ||||
| 				"restaurant": `sample restaurant ${i}`, | ||||
| 				"rating": i, | ||||
| 				"rating": (i % 5) + 1, | ||||
| 				"tags": [`tag ${i%3}`, `tag ${i < 50}`, "tag x"] | ||||
| 			}; | ||||
|  | ||||
| @@ -124,134 +125,145 @@ describe("test sort/filter localStorage interaction", () => { | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	it("test getTopReviewsFromStorage end behavior after create", () =>{ | ||||
| 		for(let i = 0; i <= 100; i++){ | ||||
| 			let top_reviews = getTopReviewsFromStorage(i); | ||||
| 			for(let j = 0; j < i; j++){ | ||||
| 				assert.strictEqual(top_reviews[j].rating, 99 - j); | ||||
| 				assert.strictEqual(top_reviews[j].reviewID, 99 - j); | ||||
| 			} | ||||
| 	it("test getTopIDsFromStorage end behavior after create", () =>{ | ||||
| 		let top_reviews = getTopIDsFromStorage(); | ||||
| 		let prev = Infinity; | ||||
| 		for(let i = 0; i < top_reviews.length; i++){ | ||||
| 			let review = getReviewFromStorage(top_reviews[i]); | ||||
| 			assert.strictEqual(review.rating <= prev, true); | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	it("test getReviewsByTag end behavior after create", () => { | ||||
| 	it("test getIDsByTag end behavior after create", () => { | ||||
| 		let specific_tagged_reviews = []; | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 0"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 0"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 34); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag 0"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID % 3, 0); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag 0"), true); | ||||
| 			assert.strictEqual(review.reviewID % 3, 0); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 1"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 1"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 33); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag 1"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID % 3, 1); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag 1"), true); | ||||
| 			assert.strictEqual(review.reviewID % 3, 1); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 2"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 2");	 | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 33); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag 2"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID % 3, 2); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag 2"), true); | ||||
| 			assert.strictEqual(review.reviewID % 3, 2); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag true"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag true");		 | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 50); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag true"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID < 50, true); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag true"), true); | ||||
| 			assert.strictEqual(review.reviewID < 50, true); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag false"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag false");		 | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 50); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag false"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID >= 50, true); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag false"), true); | ||||
| 			assert.strictEqual(review.reviewID >= 50, true); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag x"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag x");		 | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 100); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag y"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag y");		 | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
| 	}); | ||||
|  | ||||
| 	it("update sample data for sort and filter", () => { | ||||
| 		for(let i = 0; i < 100; i++){ | ||||
| 			let old_review = getReviewFromStorage(i); | ||||
| 			let new_review = { | ||||
| 				"imgSrc": `sample src ${i}`, | ||||
| 				"mealName": `sample name ${i}`, | ||||
| 				"restaurant": `sample restaurant ${i}`, | ||||
| 				"rating": 99-i, | ||||
| 				"tags": [`tag ${i%4}`, `tag ${i < 37}`, "tag y"] | ||||
| 				"reviewID": old_review.reviewID, | ||||
| 				"rating": (i % 5) + 1, | ||||
| 				"tags": [`tag ${i % 4}`, `tag ${i < 37}`, "tag y"] | ||||
| 			}; | ||||
|  | ||||
| 			updateReviewToStorage(i, new_review); | ||||
| 			updateReviewToStorage(old_review.reviewID, new_review); | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	it("test getTopReviewsFromStorage end behavior after create", () =>{ | ||||
| 		for(let i = 0; i <= 100; i++){ | ||||
| 			let top_reviews = getTopReviewsFromStorage(i); | ||||
| 			for(let j = 0; j < i; j++){ | ||||
| 				assert.strictEqual(top_reviews[j].rating, 99 - j); | ||||
| 				assert.strictEqual(top_reviews[j].reviewID, j); | ||||
| 			} | ||||
| 	it("test getTopIDsFromStorage end behavior after create", () =>{ | ||||
| 		let top_reviews = getTopIDsFromStorage(); | ||||
| 		let prev = Infinity; | ||||
| 		for(let i = 0; i < top_reviews.length; i++){ | ||||
| 			let review = getReviewFromStorage(top_reviews[i]); | ||||
| 			assert.strictEqual(review.rating <= prev, true); | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	it("test getReviewsByTag end behavior after update", () => { | ||||
| 	it("test getIDsByTag end behavior after update", () => { | ||||
| 		let specific_tagged_reviews = []; | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 0"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 0"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 25); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag 0"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID % 4, 0); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag 0"), true); | ||||
| 			assert.strictEqual(review.reviewID % 4, 0); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 1"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 1"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 25); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag 1"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID % 4, 1); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag 1"), true); | ||||
| 			assert.strictEqual(review.reviewID % 4, 1); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 2"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 2"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 25); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag 2"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID % 4, 2); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag 2"), true); | ||||
| 			assert.strictEqual(review.reviewID % 4, 2); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 3"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 3"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 25); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag 3"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID % 4, 3); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag 3"), true); | ||||
| 			assert.strictEqual(review.reviewID % 4, 3); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag true"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag true"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 37); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag true"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID < 37, true); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag true"), true); | ||||
| 			assert.strictEqual(review.reviewID < 37, true); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag false"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag false"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 63); | ||||
| 		for(let i = 0; i < specific_tagged_reviews.length; i++){ | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].tags.includes("tag false"), true); | ||||
| 			assert.strictEqual(specific_tagged_reviews[i].reviewID >= 37, true); | ||||
| 			let review = getReviewFromStorage(specific_tagged_reviews[i]); | ||||
| 			assert.strictEqual(review.tags.includes("tag false"), true); | ||||
| 			assert.strictEqual(review.reviewID >= 37, true); | ||||
| 		} | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag x"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag x"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag y"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag y"); | ||||
| 		assert.strictEqual(specific_tagged_reviews.length, 100); | ||||
| 	}); | ||||
|  | ||||
| @@ -261,38 +273,38 @@ describe("test sort/filter localStorage interaction", () => { | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	it("test getTopReviewsFromStorage end behavior after delete", () =>{ | ||||
| 	it("test getTopIDsFromStorage end behavior after delete", () =>{ | ||||
| 		for(let i = 0; i <= 100; i++){ | ||||
| 			let top_reviews = getTopReviewsFromStorage(i); | ||||
| 			let top_reviews = getTopIDsFromStorage(i); | ||||
| 			assert.deepEqual(top_reviews, []); | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	it("test getReviewsByTag end behavior after delete", () => { | ||||
| 	it("test getIDsByTag end behavior after delete", () => { | ||||
| 		let specific_tagged_reviews = []; | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 0"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 0"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 1"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 1"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 2"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 2"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag 3"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag 3"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag true"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag true"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag false"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag false"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag x"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag x"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
|  | ||||
| 		specific_tagged_reviews = getReviewsByTag("tag y"); | ||||
| 		specific_tagged_reviews = getIDsByTag("tag y"); | ||||
| 		assert.deepEqual(specific_tagged_reviews, []); | ||||
| 	}); | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // main.js | ||||
| import {getAllReviewsFromStorage, getTopReviewsFromStorage, getReviewsByTag, getIDsByTag, getIDsFromStorage, getReviewFromStorage, getTopIDsFromStorage} from "./localStorage.js"; | ||||
| import {getIDsByTag, getIDsFromStorage, getReviewFromStorage, getTopIDsFromStorage} from "./localStorage.js"; | ||||
|  | ||||
| // Run the init() function when the page has loaded | ||||
| window.addEventListener("DOMContentLoaded", init); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user