github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/inscriptions/controller_test.go (about) 1 package inscriptions 2 3 import ( 4 "fmt" 5 "log" 6 "net/url" 7 "testing" 8 9 "github.com/benoitkugler/goACVE/logs" 10 rd "github.com/benoitkugler/goACVE/server/core/rawdata" 11 ) 12 13 var ct Controller 14 15 func init() { 16 db, err := rd.ConnectDB(logs.DBDev) 17 if err != nil { 18 log.Fatal(err) 19 } 20 ct.DB = db 21 ct.Signing = logs.PASSPHRASE_DEV 22 } 23 24 func TestCamps(t *testing.T) { 25 data, err := ct.loadCamps() 26 if err != nil { 27 t.Fatal(err) 28 } 29 fmt.Println(data.camps.Ids()) 30 fmt.Println(data.groupes.Ids()) 31 } 32 33 func TestPreinscription(t *testing.T) { 34 mail := "x.ben.x@free.fr" 35 out, err := ct.chercheMail(mail) 36 if err != nil { 37 t.Fatal(err) 38 } 39 fmt.Println("responsables: ", len(out.responsables)) 40 fmt.Println("participants :", len(out.idsParticipantPersonnes)) 41 42 liens, err := ct.buildLiensPreinscription(out, "http://acve.fr/inscription") 43 if err != nil { 44 t.Fatal(err) 45 } 46 if len(liens) != len(out.responsables) { 47 fmt.Println(liens) 48 t.Error() 49 } 50 if len(liens) == 0 { 51 t.Fatal("pas de mail trouvés") 52 } 53 lien := liens[0].Lien 54 u, err := url.Parse(lien) 55 if err != nil { 56 t.Fatal("lien invalide :", err) 57 } 58 59 insc, err := ct.decodePreinscription(u.Query().Get("preinscription")) 60 if err != nil { 61 t.Fatal(err) 62 } 63 if m := insc.Responsable.Mail.String(); m != mail { 64 t.Errorf("unexpected mail : got %s", m) 65 } 66 67 if err := ct.decodeLienId(&insc.Responsable.Lienid); err != nil { 68 t.Fatal(err) 69 } 70 } 71 72 func TestInscription(t *testing.T) { 73 data, err := ct.loadCamps() 74 if err != nil { 75 t.Fatal(err) 76 } 77 camps, _ := data.triCamps() 78 if len(camps) == 0 { 79 t.Fatal("Aucun camp ouvert") 80 } 81 82 campId := camps[0].Id 83 insc := rd.Inscription{ 84 Info: "Ceci est un test !", 85 Participants: rd.ParticipantInscriptions{ 86 {IdCamp: campId}, 87 {IdCamp: campId}, 88 {IdCamp: campId}, 89 }, 90 CopiesMails: []string{"lmksd", "sdlsmkdsmkd"}, 91 } 92 fac, _, err := ct.enregistreInscription(insc, false, data) 93 if err != nil { 94 t.Fatal(err) 95 } 96 if fac.IsValidated { 97 t.Error("shouldn't be validated") 98 } 99 rows, err := ct.DB.Query("SELECT * FROM messages WHERE id_facture = $1", fac.Id) 100 if err != nil { 101 t.Fatal(err) 102 } 103 messages, err := rd.ScanMessages(rows) 104 if err != nil { 105 t.Fatal(err) 106 } 107 if len(messages) != 2 { 108 t.Fatal("2 messages (heure et info) attendus") 109 } 110 contenus, err := rd.SelectMessageMessagesByIdMessages(ct.DB, messages.Ids()...) 111 if err != nil { 112 t.Fatal(err) 113 } 114 if len(contenus) != 1 { 115 t.Fatal("un seul message avec contenu est attendu") 116 } 117 if contenus[0].Contenu != insc.Info { 118 t.Error("messages are different") 119 } 120 rows, err = ct.DB.Query("SELECT * FROM participants WHERE id_facture = $1", fac.Id) 121 if err != nil { 122 t.Fatal(err) 123 } 124 parts, err := rd.ScanParticipants(rows) 125 if err != nil { 126 t.Fatal(err) 127 } 128 if len(parts) != len(insc.Participants) { 129 t.Fatal("participant manquant") 130 } 131 } 132 133 func TestInscriptionSimple(t *testing.T) { 134 data, err := ct.loadCamps() 135 if err != nil { 136 t.Fatal(err) 137 } 138 _, cs := data.triCamps() 139 if len(cs) == 0 { 140 t.Fatal("aucun camp simple") 141 } 142 var camp CampSimple 143 for _, c := range cs { 144 camp = c 145 break 146 } 147 148 if err = ct.enregistreInscriptionSimple(InscriptionSimple{}, camp); err != nil { 149 t.Fatal(err) 150 } 151 }