storage.test.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { describe, expect, test, afterAll } from "bun:test"
  2. import { Storage } from "../../src/core/storage"
  3. describe("core.storage", () => {
  4. test("should list files with after and before range", async () => {
  5. await Storage.write(["test", "users", "user1"], { name: "user1" })
  6. await Storage.write(["test", "users", "user2"], { name: "user2" })
  7. await Storage.write(["test", "users", "user3"], { name: "user3" })
  8. await Storage.write(["test", "users", "user4"], { name: "user4" })
  9. await Storage.write(["test", "users", "user5"], { name: "user5" })
  10. const result = await Storage.list({ prefix: ["test", "users"], after: "user2", before: "user4" })
  11. expect(result).toEqual([["test", "users", "user3"]])
  12. })
  13. test("should list files with after only", async () => {
  14. const result = await Storage.list({ prefix: ["test", "users"], after: "user3" })
  15. expect(result).toEqual([
  16. ["test", "users", "user4"],
  17. ["test", "users", "user5"],
  18. ])
  19. })
  20. test("should list files with limit", async () => {
  21. const result = await Storage.list({ prefix: ["test", "users"], limit: 3 })
  22. expect(result).toEqual([
  23. ["test", "users", "user1"],
  24. ["test", "users", "user2"],
  25. ["test", "users", "user3"],
  26. ])
  27. })
  28. test("should list all files without prefix", async () => {
  29. const result = await Storage.list()
  30. expect(result.length).toBeGreaterThan(0)
  31. })
  32. test("should list all files with prefix", async () => {
  33. const result = await Storage.list({ prefix: ["test", "users"] })
  34. expect(result).toEqual([
  35. ["test", "users", "user1"],
  36. ["test", "users", "user2"],
  37. ["test", "users", "user3"],
  38. ["test", "users", "user4"],
  39. ["test", "users", "user5"],
  40. ])
  41. })
  42. afterAll(async () => {
  43. const testFiles = await Storage.list({ prefix: ["test"] })
  44. for (const file of testFiles) {
  45. await Storage.remove(file)
  46. }
  47. const remainingFiles = await Storage.list({ prefix: ["test"] })
  48. expect(remainingFiles).toEqual([])
  49. })
  50. })