Adding tests for adding votes
This commit is contained in:
@@ -393,4 +393,69 @@ func TestSetVote(t *testing.T) {
|
||||
if expected_non_member_votes != 5 || expected_member_votes != 4 {
|
||||
t.Errorf("Expected %d non-member votes and %d member votes, but got %d non-member votes and %d member votes", 4+1, 3+1, expected_non_member_votes, expected_member_votes)
|
||||
}
|
||||
}
|
||||
|
||||
func TestVoterAlreadyVoted(t *testing.T) {
|
||||
// Preload the database with members, polls, and voters
|
||||
tmp_db, err := os.CreateTemp("", "vote_test.*.db")
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create temporary database: %v", err)
|
||||
}
|
||||
defer os.Remove(tmp_db.Name())
|
||||
|
||||
init_conf := &config.Config{
|
||||
DBPath: string(tmp_db.Name()),
|
||||
}
|
||||
config.SetConfig(init_conf)
|
||||
|
||||
err = PreLoadDB()
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to preload database: %v", err)
|
||||
}
|
||||
|
||||
// Add a non-member vote
|
||||
random_email := RandString(10) + "@mail.me"
|
||||
vote := &models.Vote{
|
||||
PollId: 1,
|
||||
Email: random_email,
|
||||
Vote: true,
|
||||
}
|
||||
err = SetVote(vote)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to set non-member vote: %v", err)
|
||||
}
|
||||
|
||||
// Add a member vote
|
||||
member_email := "test100@mail.me"
|
||||
vote = &models.Vote{
|
||||
PollId: 1,
|
||||
Email: member_email,
|
||||
Vote: true,
|
||||
}
|
||||
err = SetVote(vote)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to set member vote: %v", err)
|
||||
}
|
||||
|
||||
// Attempt to add another non-member vote
|
||||
vote = &models.Vote{
|
||||
PollId: 1,
|
||||
Email: random_email,
|
||||
Vote: true,
|
||||
}
|
||||
err = SetVote(vote)
|
||||
if err != ErrVoterAlreadyVoted {
|
||||
t.Fatalf("Expected ErrVoterAlreadyVoted, but got %v", err)
|
||||
}
|
||||
|
||||
// Attempt to add another member vote
|
||||
vote = &models.Vote{
|
||||
PollId: 1,
|
||||
Email: member_email,
|
||||
Vote: true,
|
||||
}
|
||||
err = SetVote(vote)
|
||||
if err != ErrVoterAlreadyVoted {
|
||||
t.Fatalf("Expected ErrVoterAlreadyVoted, but got %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user