A music player that connects to your cloud/distributed storage.
at v4 67 lines 2.1 kB view raw
1import { describe, it } from "@std/testing/bdd"; 2import { expect } from "@std/expect"; 3 4import { testWeb } from "@tests/common/index.ts"; 5import { trackA, trackB } from "~/testing/sample/tracks.js"; 6 7describe("components/processor/search", () => { 8 it("finds tracks by album", async () => { 9 const results = await testWeb(async () => { 10 const SearchProcessor = await import( 11 "~/components/processor/search/element.js" 12 ); 13 const processor = new SearchProcessor.CLASS(); 14 15 document.body.append(processor); 16 17 // Add sample tracks to the supply first 18 const { tracks } = await import("~/testing/sample/tracks.js"); 19 await processor.supply({ tracks }); 20 21 // Search for a specific term 22 return processor.search({ term: tracks[1]?.tags?.album }); 23 }); 24 25 expect(results[0]?.id).toBe(trackB.id); 26 }); 27 28 it("finds tracks by artist", async () => { 29 const results = await testWeb(async () => { 30 const SearchProcessor = await import( 31 "~/components/processor/search/element.js" 32 ); 33 const processor = new SearchProcessor.CLASS(); 34 35 document.body.append(processor); 36 37 // Add sample tracks to the supply first 38 const { tracks } = await import("~/testing/sample/tracks.js"); 39 await processor.supply({ tracks }); 40 41 // Search for a specific term 42 return processor.search({ term: tracks[0]?.tags?.artist }); 43 }); 44 45 expect(results[0]?.id).toBe(trackA.id); 46 }); 47 48 it("finds tracks by title", async () => { 49 const results = await testWeb(async () => { 50 const SearchProcessor = await import( 51 "~/components/processor/search/element.js" 52 ); 53 const processor = new SearchProcessor.CLASS(); 54 55 document.body.append(processor); 56 57 // Add sample tracks to the supply first 58 const { tracks } = await import("~/testing/sample/tracks.js"); 59 await processor.supply({ tracks }); 60 61 // Search for a specific term 62 return processor.search({ term: tracks[1]?.tags?.title }); 63 }); 64 65 expect(results[0]?.id).toBe(trackB.id); 66 }); 67});