longJobs.spec.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { setActivePinia, createPinia } from "pinia";
  2. import { useLongJobsStore } from "@/stores/longJobs";
  3. describe("longJobs store", () => {
  4. beforeEach(context => {
  5. setActivePinia(createPinia());
  6. context.longJobsStore = useLongJobsStore();
  7. });
  8. test("setJobs", ({ longJobsStore }) => {
  9. const jobs = [
  10. {
  11. id: "f9c51c9b-2709-4c79-8263-998026fd8afb",
  12. name: "Bulk verifying songs",
  13. status: "success",
  14. message: "2 songs have been successfully verified"
  15. }
  16. ];
  17. longJobsStore.setJobs(jobs);
  18. expect(longJobsStore.activeJobs).toEqual(jobs);
  19. });
  20. test("setJob new", ({ longJobsStore }) => {
  21. const job = {
  22. id: "f9c51c9b-2709-4c79-8263-998026fd8afb",
  23. name: "Bulk verifying songs",
  24. status: "success",
  25. message: "2 songs have been successfully verified"
  26. };
  27. longJobsStore.setJob(job);
  28. expect(longJobsStore.activeJobs).toEqual([job]);
  29. });
  30. test("setJob update", ({ longJobsStore }) => {
  31. longJobsStore.setJob({
  32. id: "f9c51c9b-2709-4c79-8263-998026fd8afb",
  33. name: "Bulk verifying songs",
  34. status: "started",
  35. message: "Verifying 2 songs.."
  36. });
  37. const updatedJob = {
  38. id: "f9c51c9b-2709-4c79-8263-998026fd8afb",
  39. name: "Bulk verifying songs",
  40. status: "success",
  41. message: "2 songs have been successfully verified"
  42. };
  43. longJobsStore.setJob(updatedJob);
  44. expect(longJobsStore.activeJobs).toEqual([updatedJob]);
  45. });
  46. test("setJob already removed", ({ longJobsStore }) => {
  47. const job = {
  48. id: "f9c51c9b-2709-4c79-8263-998026fd8afb",
  49. name: "Bulk verifying songs",
  50. status: "success",
  51. message: "2 songs have been successfully verified"
  52. };
  53. longJobsStore.setJob(job);
  54. longJobsStore.removeJob("f9c51c9b-2709-4c79-8263-998026fd8afb");
  55. longJobsStore.setJob(job);
  56. expect(longJobsStore.activeJobs.length).toBe(0);
  57. expect(longJobsStore.removedJobIds).toEqual([
  58. "f9c51c9b-2709-4c79-8263-998026fd8afb"
  59. ]);
  60. });
  61. test("removeJob", ({ longJobsStore }) => {
  62. longJobsStore.setJobs([
  63. {
  64. id: "f9c51c9b-2709-4c79-8263-998026fd8afb",
  65. name: "Bulk verifying songs",
  66. status: "success",
  67. message: "2 songs have been successfully verified"
  68. }
  69. ]);
  70. longJobsStore.removeJob("f9c51c9b-2709-4c79-8263-998026fd8afb");
  71. expect(longJobsStore.activeJobs.length).toBe(0);
  72. expect(longJobsStore.removedJobIds).toContain(
  73. "f9c51c9b-2709-4c79-8263-998026fd8afb"
  74. );
  75. longJobsStore.removeJob("e58fb1a6-14eb-4ce9-aed9-96c8afe17cbe");
  76. expect(longJobsStore.removedJobIds).not.toContain(
  77. "e58fb1a6-14eb-4ce9-aed9-96c8afe17cbe"
  78. );
  79. });
  80. });