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 });