mirror of
				https://github.com/cse110-fa22-group29/cse110-fa22-group29.git
				synced 2025-10-31 03:46:50 +00:00 
			
		
		
		
	add e2e tests for update and delete,
fix package.json commadns for lint and fix-style Signed-off-by: Arthur Lu <learthurgo@gmail.com>
This commit is contained in:
		| @@ -4,7 +4,7 @@ | |||||||
|   "type": "module", |   "type": "module", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "test": "mocha --recursive --require mock-local-storage './{,!(node_modules)/**}/*.test.js'", |     "test": "mocha --recursive --require mock-local-storage './{,!(node_modules)/**}/*.test.js'", | ||||||
|     "lint": "eslint '**/*.js'", |     "lint": "eslint **/*.js", | ||||||
|     "fix-style": "eslint --fix **/*.js", |     "fix-style": "eslint --fix **/*.js", | ||||||
|     "lintHTML": "htmlhint '**/*.html'", |     "lintHTML": "htmlhint '**/*.html'", | ||||||
|     "lintCSS": "stylelint '**/*.css'", |     "lintCSS": "stylelint '**/*.css'", | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| import {strict as assert} from "node:assert"; | import {strict as assert} from "node:assert"; | ||||||
| import {describe, it, beforeEach, afterEach} from "mocha"; | import {describe, it, before, after} from "mocha"; | ||||||
| import puppeteer from "puppeteer-core"; | import puppeteer from "puppeteer-core"; | ||||||
| import { exit } from "node:process"; | import { exit } from "node:process"; | ||||||
|  |  | ||||||
| @@ -33,11 +33,87 @@ describe("test App end to end", async () => { | |||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	it("test update review functinality", async () => { | 	it("test update review functinality", async () => { | ||||||
|  | 		// Get the only review card and click it | ||||||
|  | 		let review_card = await page.$("review-card"); | ||||||
|  | 		await review_card.click(); | ||||||
|  |  | ||||||
|  | 		// Set text fields | ||||||
|  | 		await page.$eval("#mealImg", el => el.value = "updated src"); | ||||||
|  | 		await page.$eval("#imgAlt", el => el.value = "updated alt"); | ||||||
|  | 		await page.$eval("#mealName", el => el.value = "updated name"); | ||||||
|  | 		await page.$eval("#comments", el => el.value = "updated comment"); | ||||||
|  | 		await page.$eval("#restaurant", el => el.value = "updated restaurant"); | ||||||
|  |  | ||||||
|  | 		// Get all tag elements and click them to delete them | ||||||
|  | 		let tag_items = await page.$$(".tag"); | ||||||
|  | 		for(let i = 0; i < tag_items.length; i++){ | ||||||
|  | 			await tag_items.click(); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Get the button needed to add new tags | ||||||
|  | 		let tag_btn = await page.$("#tag-add-btn"); | ||||||
|  | 		for(let i = 0; i < 5; i++){ | ||||||
|  | 			await page.$eval("#tag-form", (el, value) => el.value = `tag -${value}`, i); | ||||||
|  | 			tag_btn.click(); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Select a new rating of 1 star | ||||||
|  | 		let rating_select = await page.$("#s1"); | ||||||
|  | 		rating_select.click(); | ||||||
|  |  | ||||||
|  | 		// Click the submit button to save updates | ||||||
|  | 		let submit_btn = await page.$("submit.btn"); | ||||||
|  | 		submit_btn.click(); | ||||||
|  |  | ||||||
|  | 		// Get the review card again and get its shadowRoot | ||||||
|  | 		review_card = await page.$("review-card"); | ||||||
|  | 		let shadowRoot = await review_card.getProperty("shadowRoot"); | ||||||
|  |  | ||||||
|  | 		// Get the review image and check src and alt | ||||||
|  | 		let img = await shadowRoot.$("#a-mealImg"); | ||||||
|  | 		let imgSrc = await img.getProperty("src"); | ||||||
|  | 		let imgAlt = await img.getProperty("alt"); | ||||||
|  | 		// Check src and alt | ||||||
|  | 		assert.strictEqual(await imgSrc.jsonValue(), "updated src"); | ||||||
|  | 		assert.strictEqual(await imgAlt.jsonValue(), "updated alt"); | ||||||
|  |  | ||||||
|  | 		// Get the title, comment, and restaurant | ||||||
|  | 		let title = await shadowRoot.$("#a-mealName"); | ||||||
|  | 		let title_text = await title.getProperty("innerText"); | ||||||
|  | 		let comment = await shadowRoot.$("a-comments"); | ||||||
|  | 		let comment_text = await comment.getProperty("innerText"); | ||||||
|  | 		let restaurant = await shadowRoot.$("#a-restaurant"); | ||||||
|  | 		let restaurant_text = await restaurant.getProperty("innerText"); | ||||||
|  | 		// Check title, comment, and restaurant | ||||||
|  | 		assert.strictEqual(await title_text.jsonValue(), "updated name"); | ||||||
|  | 		assert.strictEqual(await comment_text.jsonValue(), "updated comment"); | ||||||
|  | 		assert.strictEqual(await restaurant_text.jsonValue(), "updated restaurant"); | ||||||
|  | 		 | ||||||
|  | 		// Check tags | ||||||
|  | 		let tags = shadowRoot.$(".tag"); | ||||||
|  | 		for(let i = 0; i < tags.length; i++){ | ||||||
|  | 			let tag_text = await tags[i].getProperty("innerText"); | ||||||
|  | 			assert.strictEqual(await tag_text.jsonValue(), `tag -${i}`); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Check stars | ||||||
|  | 		let stars = await shadowRoot.$("a-rating"); | ||||||
|  | 		let stars_src = await stars.getProperty("src"); | ||||||
|  | 		assert.strictEqual(await stars_src.jsonValue(), "./assets/images/icons/1-star.svg"); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	it("test delete review functinality", async () => { | 	it("test delete review functinality", async () => { | ||||||
|  | 		// Get the only review card and click it | ||||||
|  | 		let review_card = await page.$("review-card"); | ||||||
|  | 		await review_card.click(); | ||||||
|  |  | ||||||
|  | 		// Get the delete button and click it | ||||||
|  | 		let delete_btn = await page.$("delete-btn"); | ||||||
|  | 		await delete_btn.click(); | ||||||
|  |  | ||||||
|  | 		// Check that the card was correctly removed (there should be no remaining cards) | ||||||
|  | 		review_card = await page.$("review-card"); | ||||||
|  | 		assert.strictEqual(review_card, null); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	after(async () => { | 	after(async () => { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user