/ tests / models / Residence.test.ts
Residence.test.ts
 1  import residences from "@!/residences.json";
 2  import { describe, expect, it } from "bun:test";
 3  import { deserialize } from "desero";
 4  import { Residence } from "~/models";
 5  
 6  describe("ResidenceDTO", () => {
 7    it("should decode [0] to model properly", () => {
 8      const residence = deserialize(Residence, residences[0]);
 9      expect(residence.address).toBe("Avenue de Collégno, 33400 Talence");
10      expect(residence.albumUrl).toBeNull();
11      expect(residence.appointmentUrl).toBeNull();
12      expect(residence.area).toBe("Talence");
13      expect(residence.bookingUrl).toBe("https://trouverunlogement.lescrous.fr/");
14      expect(residence.contact).toBe("<p>Village 1 rénové<br /></strong>Campus Talence</p>");
15      expect(residence.crousAndGoUrl).toBeNull();
16      expect(residence.email).toBe("residences.campus-talence@crous-bordeaux.fr");
17      expect(residence.fullInformation).toBe("<p>Tram B - Arrêt Arts et Métiers<br />Ligne 87 et Corol 34 Arrêt Village 1</p>");
18      expect(residence.id).toBe("1");
19      expect(residence.latitude).toBe(44.8069763184);
20      expect(residence.localServices).toBe("<p>some services for you!</p>");
21      expect(residence.longitude).toBe(-0.6032860279);
22      expect(residence.phone).toBe("05 56 80 67 68");
23      expect(residence.description).toBe("Le Village 1 est constituée de 6 bâtiments construits en 1965 et entièrement rénovés entre 2008 et 2014.");
24      expect(residence.title).toBe("Village rénové");
25      expect(residence.troubleshootingUrl).toBe("https://linktr.ee/crous_bordeaux_reparation");
26      expect(residence.virtualVisitUrl).toBeNull();
27      expect(residence.websiteUrl).toBe("https://selfcare.wifirst.net/sessions/new");
28      expect(residence.images).toEqual([
29        "https://admin-v2.crous-mobile.fr//media/house/20221130_7bb95e8_4.jpg",
30        "https://admin-v2.crous-mobile.fr//media/house/20221130_d7b33c8_3.jpg",
31        "https://admin-v2.crous-mobile.fr//media/house/20221130_a839e77_2.jpg",
32        "https://admin-v2.crous-mobile.fr//media/house/20221130_22b92ca_1.jpg"
33      ]);
34      expect(residence.inHomeServices).toEqual([
35        "Accessible PMR",
36        "Parking PMR"
37      ]);
38    });
39  
40    it("should decode [1] to model properly", () => {
41      const residence = deserialize(Residence, residences[1]);
42      expect(residence.address).toBeNull();
43      expect(residence.albumUrl).toBeNull();
44      expect(residence.appointmentUrl).toBeNull();
45      expect(residence.area).toBe("Bordeaux");
46      expect(residence.bookingUrl).toBeNull();
47      expect(residence.contact).toBe("Résidence La Boétie, Campus Bordeaux");
48      expect(residence.crousAndGoUrl).toBeNull();
49      expect(residence.email).toBe("budos-secretariat@crous-bordeaux.fr");
50      expect(residence.fullInformation).toBe("Very useful information from here.");
51      expect(residence.id).toBe("2");
52      expect(residence.latitude).toBe(44.835246);
53      expect(residence.localServices).toBe("Some local services, very interesting.");
54      expect(residence.longitude).toBe(-0.571782);
55      expect(residence.phone).toBeNull();
56      expect(residence.description).toBeNull();
57      expect(residence.title).toBe("Résidence La Boétie");
58      expect(residence.troubleshootingUrl).toBeNull();
59      expect(residence.virtualVisitUrl).toBeNull();
60      expect(residence.websiteUrl).toBeNull();
61      expect(residence.images).toBeEmpty();
62      expect(residence.inHomeServices).toBeEmpty();
63    });
64  });