github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/directeurs/controller_test.go (about) 1 package directeurs 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 "testing" 8 9 "github.com/benoitkugler/goACVE/logs" 10 rd "github.com/benoitkugler/goACVE/server/core/rawdata" 11 "github.com/benoitkugler/goACVE/server/core/utils/mails" 12 "github.com/benoitkugler/goACVE/server/core/utils/pdf" 13 "github.com/benoitkugler/goACVE/server/shared" 14 ) 15 16 var ct Controller 17 18 const ( 19 noForce = iota 20 forceSimple 21 forceComplet 22 ) 23 24 func init() { 25 db, err := rd.ConnectDB(logs.DBDev) 26 if err != nil { 27 panic(err) 28 } 29 ct, err = NewController(shared.Controller{DB: db, SMTP: logs.SmtpDev, Signing: logs.PASSPHRASE_DEV}, logs.JoomeoDev, "../../ressources") 30 if err != nil { 31 panic(err) 32 } 33 34 if len(ct.defaultListe.Ete) == 0 || len(ct.defaultListe.Hiver) == 0 { 35 panic("listes par défaut non chargées") 36 } 37 38 mails.InitTemplates("../../ressources") 39 pdf.IMAGES_PATH = "../../ressources/images" 40 } 41 42 func getCamp(t *testing.T, force int) rd.Camp { 43 camps, err := rd.SelectAllCamps(ct.DB) 44 if err != nil { 45 t.Fatal(err) 46 } 47 for _, camp := range camps { 48 if (force == forceSimple && bool(camp.InscriptionSimple)) || (force == forceComplet && !bool(camp.InscriptionSimple)) || force == noForce { 49 return camp 50 } 51 } 52 t.Fatal("Aucun camp.") 53 return rd.Camp{} 54 } 55 56 func TestLoggin(t *testing.T) { 57 camp := getCamp(t, noForce) 58 59 _, _, err := ct.checkPassword(camp.Id, camp.Password.String()) 60 if err != nil { 61 t.Fatal(err) 62 } 63 64 _, token, err := ct.checkPassword(camp.Id, "") 65 if err != nil { 66 t.Fatal(err) 67 } 68 if token != "" { 69 t.Fatal("expected an error for wrong password") 70 } 71 } 72 73 func newDummyRequest(t *testing.T, force int) dummyRequest { 74 camp := getCamp(t, force) 75 _, token, err := ct.checkPassword(camp.Id, camp.Password.String()) 76 if err != nil { 77 t.Fatal(err) 78 } 79 return dummyRequest{idCamp: camp.Id, token: token} 80 } 81 82 func TestLoad(t *testing.T) { 83 dr := newDummyRequest(t, noForce) 84 _, err := ct.setupRequest(dr, noLoad) 85 if err != nil { 86 t.Fatal(err) 87 } 88 _, err = ct.setupRequest(dr, loadInscrits) 89 if err != nil { 90 t.Fatal(err) 91 } 92 _, err = ct.setupRequest(dr, loadEquipiers) 93 if err != nil { 94 t.Fatal(err) 95 } 96 } 97 98 func TestLettre(t *testing.T) { 99 req := newDummyRequest(t, forceComplet) 100 rc, err := ct.setupRequestComplet(req, noLoad) 101 if err != nil { 102 t.Fatal(err) 103 } 104 105 doc, err := rc.updateLettreDirecteur("localhost", rd.Lettredirecteur{ 106 Html: "Bonjour <b>chers amis</b>", 107 UseCoordCentre: true, 108 }) 109 if err != nil { 110 t.Fatal(err) 111 } 112 fmt.Println(doc) 113 114 _, _, err = rc.getLettreDirecteur("localhost") 115 if err != nil { 116 t.Fatal(err) 117 } 118 } 119 120 func TestListeVetements(t *testing.T) { 121 req := newDummyRequest(t, forceComplet) 122 rc, err := ct.setupRequestComplet(req, noLoad) 123 if err != nil { 124 t.Fatal(err) 125 } 126 127 err = rc.updateListeVetements(rd.ListeVetements{Complement: "lmsdksld"}) 128 if err != nil { 129 t.Fatal(err) 130 } 131 } 132 133 func TestBonusDoc(t *testing.T) { 134 req := newDummyRequest(t, forceComplet) 135 rc, err := ct.setupRequestComplet(req, noLoad) 136 if err != nil { 137 t.Fatal(err) 138 } 139 140 fileContent, err := ioutil.ReadFile("../../ressources/RIB.pdf") 141 if err != nil { 142 t.Fatal(err) 143 } 144 145 pub, err := rc.addBonusDoc("localhost", "RIB.pdf", fileContent) 146 if err != nil { 147 t.Fatal(err) 148 } 149 fmt.Println(pub.IdCrypted) 150 151 pub, err = rc.addBonusDoc("localhost", "RIB.pdf", fileContent) 152 if err != nil { 153 t.Fatal(err) 154 } 155 fmt.Println(pub.IdCrypted) 156 157 docs, err := rc.getBonusDocs("localhost") 158 if err != nil { 159 t.Fatal(err) 160 } 161 if len(docs) <= 1 { 162 t.Fatal("au moins 2 documents attendus") 163 } 164 fmt.Println(len(docs)) 165 } 166 167 func TestDetails(t *testing.T) { 168 req := newDummyRequest(t, noForce) 169 rc, err := ct.setupRequest(req, noLoad) 170 if err != nil { 171 t.Fatal(err) 172 } 173 174 details := rc.getDetails() 175 details.NbPlaces = 10 176 details.Nom = "Super cool !" 177 err = rc.updateDetails(details.DetailsWritable) 178 if err != nil { 179 t.Fatal(err) 180 } 181 } 182 183 func TestEnvois(t *testing.T) { 184 req := newDummyRequest(t, forceComplet) 185 rc, err := ct.setupRequestComplet(req, noLoad) 186 if err != nil { 187 t.Fatal(err) 188 } 189 190 err = rc.updateEnvois(rd.Envois{LettreDirecteur: true, Locked: false}) 191 if err != nil { 192 t.Fatal(err) 193 } 194 } 195 196 func TestPackageDoc(t *testing.T) { 197 dr := DriverCampComplet{} 198 dr.DB = ct.DB 199 b, err := dr.packageDocs(rd.Ids{625}, nil) 200 if err != nil { 201 t.Fatal(err) 202 } 203 fmt.Println(b.Len(), "B") 204 err = ioutil.WriteFile("test.zip", b.Bytes(), os.ModePerm) 205 if err != nil { 206 t.Fatal(err) 207 } 208 _ = os.Remove("test.zip") 209 }