Skip to content

Commit

Permalink
Update README with local e2e test instructions
Browse files Browse the repository at this point in the history
Fix Markdown linter warnings too
  • Loading branch information
pre committed Oct 13, 2024
1 parent 94f0a39 commit f03b358
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 19 deletions.
83 changes: 64 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Palvelu on irroitettu [ehdokastietojärjestelmästä](https://github.com/hyy-vaa
itsenäiseksi osaksi palvelemaan sähköistä äänestämistä.


# Käyttäjätyypit
## Käyttäjätyypit

Järjestelmässä on ainoastaan yksi käyttäjätyyppi: AdminUser.
Pääsyoikeustasot on määritetty tiedostossa `app/models/ability.rb`.
Expand All @@ -14,16 +14,17 @@ Pääsyoikeustasot on määritetty tiedostossa `app/models/ability.rb`.
- Täysi oikeus kaikkeen.


# Testiajo
## Testiajo

```bash
```shell
rake db:runts
rspec
rake db:seed:demo
```

Käynnistä vaalitulostin:
```bash
Vaalitulostimen käynnistäminen:

```shell
foreman run worker
rails s
tail -f log/development.log
Expand All @@ -32,10 +33,12 @@ tail -f log/development.log
Käynnistä voting-apin web ja worker (ks. ohjeet voting-api/README).

Avaa http://127.0.0.1:3001/

* [email protected] / pass123
* "Failed to open TCP connection to localhost:3000" tarkoittaa ettei voting-api ole käynnissä.

Hae äänet Voting API:lta ja laske vaalitulos:

```ruby
Delayed::Job::enqueue(ImportVotesJob.new(VotingArea.first))
```
Expand All @@ -46,39 +49,73 @@ Delayed::Job::enqueue(ImportVotesJob.new(VotingArea.first))
Kun lähetät sisäänkirjautumislinkin, voting-apin workerin pitää olla käynnissä
saadaksesi siitä sähköpostin. Voit tarkistaa sisäänkirjautumislinkin tiedot
ajamalla seuraavan komennon voting-api:n hakemistossa:
```bash

```shell
rake jwt:voter:verify jwt=EMAIL_LINKISSÄ_OLEVA_TOKEN
```

## Vuoden 2009 äänillä
### Testiajo Voting API:sta haetuilla äänillä

Syötä vuoden 2009 demo-äänet Voting API:iin:

```shell
voting-api> rake db:runts
voting-api> rake db:seed:edari:demo
voting-api> rake db:seed:edari:demo:votes
```

Aseta Voting API:ssa äänestys päättyneeksi, jotta äänet voidaan hakea.

Syötä Vaalitulostimen .env VOTING_API_JWT_APIKEY.

```shell
voting-api> rake jwt:service_user:generate expiry_hours=1000
```

Käynnistä Vaalitulostimen web ja worker (ohjeet ylempänä).

Hae äänet Vaalitulostimeen Voting API:sta:
http://127.0.0.1:3001/manage/results

Virheilmoitus näkyy tietodstossa log/development.log.
Vastaus HTTP 401 tulee,jos vaalit eivät ole vielä päättyneet.
voting-api> ELECTION_TERMINATES_AT, VOTE_SIGNIN_ENDS_AT

### Testiajo Vaalitulostimen demodatan vuoden 2009 äänillä

Syötä äänet seed-datasta käyttäen vain yhtä äänestysaluetta:
```bash

```shell
rake db:seed:development:internet_votes_2009
```

Syötä äänet seed-datasta vuoden 2009 äänestysalueille:
```bash

```shell
rake db:seed:development:voting_areas_2009
rake db:seed:development:votes_2009
```

Laita jonoon tuloksen laskentatyö:

```ruby
VotingArea.all.each { |a| a.ready!; a.submitted! }
Delayed::Job.enqueue(CreateResultJob.new)
```

Tulosta konsoliin:

```ruby
puts ResultDecorator.decorate(Result.last).to_html
```

Merkitse tulos valmiiksi arvontoja varten:

```ruby
Result.freeze_for_draws!
```

# Heroku-ympäristön pystyttäminen
## Heroku-ympäristön pystyttäminen

Pystytä ensin voting-api.

Expand All @@ -88,20 +125,24 @@ Nollaa aiempi tietokanta poistamalla Heroku Postgres addon ja lisäämällä se
* Tuotantoa varten valitse maksullinen Postgres Hobby $9/kk.

Alusta tietokanta:

* `rake db:schema:load`

Luo äänestysalue ja tiedekunnat:

* `rake db:seed:production`

Lataa Seed-data Ehdokasjärjestelmän tiedoilla:

* Valitse Ehdokasjärjestelmän admin-käyttöliittymästä csv-export kullekin resurssille.
* Kun sinulla on candidates.csv, alliances.csv ja coalitions.csv, suorita:
- `rake db:seed:edari`

* Luo admin-käyttäjä vaalityöntekijälle:
AdminUser.create!(:email => 'admin@example.com', :password => 'pass123', :password_confirmation => 'pass123')
* AdminUser.create!(:email => 'petrus@petafox.com', :password => 'buggy-GLAMOR-posit-santiago', :password_confirmation => 'buggy-GLAMOR-posit-santiago')

Admin-käyttäjiä voi lisätä järjestelmään äänioikeutettuja, kun äänestys on käynnissä.

* Äänestyksen aikana lisätty äänioikeutettu voi kirjautua yliopiston käyttäjätunnuksella.
* Jos äänioikeutetulla ei vielä ole yliopiston käyttäjätunnusta, Admin-käyttöliittymästä voi
lähettää hänelle sähköpostitse sisäänkirjautumislinkin.
Expand All @@ -123,17 +164,21 @@ Admin-käyttäjiä voi lisätä järjestelmään äänioikeutettuja, kun äänes
Vaalitulostin kirjoittaa lasketun vaalituloksen AWS S3:een.

AWS IAM -käyttöoikeudet antavat kirjoitusoikeuden vuosiluvun mukaiseen hakemistoon:
* `vaalitulostin-YMPÄRISTÖ/vuosiluku`
* esimerkiksi `vaalitulostin-qa/2020`

* `vaalitulostin-YMPÄRISTÖ/vuosiluku`
* esimerkiksi `vaalitulostin-qa/2020`

Päivitä jokaisen ympäristön (prod, qa, test) IAM-rooliin oikean vuosiluvun hakemisto.
* Avaa IAM > Users > Permissions

* Avaa IAM > Users > Permissions

Luo jokaisen ympäristön S3 Buckettiin vuosiluvun mukainen hakemisto AWS web-käyttöliittymästä.
* IAM-käyttäjällä ei ole oikeutta luoda uusia hakemistoja.

* IAM-käyttäjällä ei ole oikeutta luoda uusia hakemistoja.

Testaa S3-kirjoitusoikeus:
* `S3Publisher.new.test_list_objects`
* `S3Publisher.new.test_write`
* Jos S3-kirjoitus onnistuu, aikaleima päivittyy tiedostoon (esim qa-bucketissa)
https://s3.amazonaws.com/vaalitulostin-qa/VUOSILUKU/lulz.txt

* `S3Publisher.new.test_list_objects`
* `S3Publisher.new.test_write`
* Jos S3-kirjoitus onnistuu, aikaleima päivittyy tiedostoon (esim qa-bucketissa)
https://s3.amazonaws.com/vaalitulostin-qa/VUOSILUKU/lulz.txt
1 change: 1 addition & 0 deletions lib/tasks/seed_development.rake
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ namespace :db do

puts "Votes have not been seeded, to get years 2009's votes, run:"
puts " rake db:seed:development:internet_votes_2009"
puts "or check README for how to test retrieving demo votes from Voting API."
end

desc "Seed a ballot voting voting data set with year 2009's votes"
Expand Down

0 comments on commit f03b358

Please sign in to comment.