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  }