Martin
e48b6e0c1f
tech(lint): rubocop
2021-11-16 14:30:06 +01:00
Martin
0aecc301c9
refactor(Commentarie.soft_delete): use discard
2021-11-16 14:28:38 +01:00
Martin
988fe34d0a
fix(spec): add missing double
2021-11-16 03:42:31 +01:00
Martin
c68fa2d7f3
feat(Commentaire.notify_user): wait 5 minutes before sending email to user when instructor write a commentaire. leaving some space for instructor to destroy his message
2021-11-15 15:38:57 +01:00
Martin
f8783c9f00
fix(spec): stop doing time comparisson, ensure it is not more nil
2021-11-15 15:23:57 +01:00
Martin
a74ca8ad39
fix(spec): scope out time as reference for time comparission, hope not a matter of precision
2021-11-15 14:55:35 +01:00
Martin
f1293814a3
fix(spec): apparently we do store time with zone
2021-11-15 14:35:43 +01:00
Martin
4042d51d1a
tech(lint): rubocopify
2021-11-15 14:17:57 +01:00
Martin
d4c74b5621
feat(rc.1): refine with better translations, better design
2021-11-15 14:15:05 +01:00
Martin
3b78a9d81a
feat(rc): first stable
2021-11-15 13:53:32 +01:00
Martin
8b931a57d4
feat(CommentairesController#destroy): implement destroy endpoint using CommentaireService
2021-11-15 13:18:10 +01:00
Martin
c7bfd1af04
feat(CommentaireService.soft_delete): ensure it purge piece_jointe later
2021-11-15 12:59:38 +01:00
Martin
9a8ec1087c
feat(commentaire.soft_delete): wrap deletion behaviour in service
2021-11-15 12:43:53 +01:00
Martin
5b72bdec7e
fix(Commentaire.sent_by?): &.email compared to nil could sent by true when nil==nil, avoid this one
2021-11-15 12:01:56 +01:00
Martin
b03dc6ad5d
wip(dossiers/messages/_message): poc destroy button with expected ACL support
2021-11-15 11:30:41 +01:00
Paul Chavard
da47f491b3
fix(dossier): nullify close to expiration notice timestamps when changing state
2021-11-11 12:52:58 +01:00
Paul Chavard
71939c650b
fix(export): remove wrong columns from repetition spreadsheets
...
This fix prevent repetition children types de champ from being pulled from cloned procedures. stable_id is stable across revisions but also across cloned procedures.
2021-11-10 20:45:32 +01:00
Pierre de La Morinerie
9dd7806ae5
specs: add two missing fields to the brouillon spec
2021-11-09 15:22:20 +01:00
Pierre de La Morinerie
5dbb9f9e3c
specs: fix flaky "dossier brouillon" spec
...
The previous fix (scrolling to the viewport) didn't actually worked,
because the code tried to scroll the checkbox itself.
2021-11-09 15:21:59 +01:00
kara Diaby
1b27ab5aff
tests
2021-11-05 13:32:21 +01:00
simon lehericey
d1162d7493
add e2e spec
2021-11-04 16:10:09 +01:00
simon lehericey
9041e201e8
one merge at a time
2021-11-04 16:10:09 +01:00
simon lehericey
b160086cc5
update update_email to allow merge
2021-11-04 16:10:09 +01:00
simon lehericey
652b8367be
accept or refuse merge
2021-11-04 16:10:09 +01:00
Paul Chavard
ba0211ba52
feat(champ): ask for departement before asking for commune
2021-11-04 11:55:25 +01:00
Paul Chavard
122cdacbc2
fix(avis): destroy avis for discarded en_construction dossiers
2021-11-04 10:12:44 +01:00
Pierre de La Morinerie
0a541d678d
graphql_controller_spec: create several dossiers only when required
...
Creating dossiers is faster than creating a procedure, but still slow.
We can create a single dossier in the default case, and only create
several others when the example requires it.
Speeds up this spec from 0m 57s to 0m 49s.
2021-11-03 19:38:01 +01:00
Pierre de La Morinerie
f0e045ad25
graphql_controller_spec: create all types de champs only when required
...
Creating a procedure with all available types de champ is slow. We can
create a simpler procedure in the default case, and only create all
types de champs when the example requires it.
Speeds up this spec from 1m 55s to 0m 57s.
2021-11-03 19:38:01 +01:00
Pierre de La Morinerie
e02251c0e5
graphql_controller_spec: populate all champs only when required
...
Creating a dossier with available champs populated is slow. We can
create simpler dossiers in the default case, and only populate all
champs when the example requires it.
Speeds up this spec from 2mn 20s to 1m 55s.
2021-11-03 19:38:01 +01:00
Pierre de La Morinerie
bb1bc9140d
graphql_controller_spec: remove unused line
2021-11-03 19:38:01 +01:00
Pierre de La Morinerie
04159056af
specs: clarify spec by replacing some context
by describe
2021-11-03 19:38:01 +01:00
Pierre de La Morinerie
b06183d7bf
specs: rename Dossier's with_all_champs
to with_populated_champs
...
This better reflects what the trait is used for, and disambiguate it
from the similarly named trait in the Procedure factory.
2021-11-03 19:38:01 +01:00
Paul Chavard
f6b8689a97
fix(revisions): fix repetitions export with revisions
2021-11-03 18:20:48 +01:00
Paul Chavard
da49a6447f
refactor(repetition): optimize and add a transaction around repetition add row
2021-10-28 14:54:33 +02:00
Paul Chavard
c4b93f8d4a
fix(groupe_instructeur): unfollow dossiers when removed from groupe instructeur
2021-10-28 14:45:52 +02:00
simon lehericey
7935e42109
Add merge log
2021-10-28 14:39:13 +02:00
simon lehericey
3328c9a132
merge move invite as well
2021-10-28 14:39:13 +02:00
simon lehericey
f2ccb39912
merge destroys the old role and account
2021-10-28 14:39:13 +02:00
simon lehericey
c725999582
move merge method to user
2021-10-28 14:39:13 +02:00
simon lehericey
3d524e9488
Change factory user password to be compatible with admin pass constraint
2021-10-28 14:39:13 +02:00
Paul Chavard
1393b7b07b
fix(rebase): fix repetition champ rebase
2021-10-28 13:27:53 +02:00
kara Diaby
71aa13f468
tests
2021-10-27 12:00:39 +02:00
Pierre de La Morinerie
9fd38cae5e
specs: migrate from features to system specs
...
System specs have been available since Rails 5.1, and are better
integrated with the Rails framework.
- Rename `spec/features` to `spec/system`
- Rename `feature do` to `describe do`
- Configure Capybara for system specs
Steps mostly taken from https://medium.com/table-xi/a-quick-guide-to-rails-system-tests-in-rspec-b6e9e8a8b5f6
2021-10-26 12:24:46 +02:00
Pierre de La Morinerie
df9fa258ae
specs: remove database_cleaner
...
This is not needed for integration tests since Rails 5.1.
See https://www.nicholasjacques.io/blog/you-probably-dont-need-databasecleaner/
2021-10-26 12:24:46 +02:00
Pierre de La Morinerie
b1eee27dd7
specs: remove outdated workaround for silencing puma logs
2021-10-26 12:24:46 +02:00
Pierre de La Morinerie
cedbd31d39
specs: only build an admin when building a procedure
...
This should slighly be faster than doing a create in the middle of the
build.
2021-10-26 12:03:30 +02:00
Pierre de La Morinerie
a2b91c8ec6
factories: cleanup Administrateur, Instructeur and Expert factories
...
This changes:
- avoids relying on application code to create mock objects,
- allows to build Administrateur or Instructeurs without saving them.
2021-10-26 12:03:30 +02:00
Pierre de La Morinerie
0ff95df221
specs: improve speed of phone_champ_spec
...
Re-use the same champ for each test. This is safe, and makes the test
go from 4s to 1s.
2021-10-26 12:03:30 +02:00
Pierre de La Morinerie
fccf75710a
specs: avoid creating uneeded champs on geo_area
...
It makes the test much faster.
2021-10-26 12:03:30 +02:00
Pierre de La Morinerie
d0e87a08cf
services: cache zxcvbn dictionaries per-thread
...
Before, every time a password was tested, the dictionaries were parsed
again by zxcvbn.
Parsing dictionaries is slow: it may take up to ~1s. This doesn't matter
that much in production, but it makes tests very slow (because we tend
to create a lot of User records).
With this changes, the initializer tester is shared between calls, class
instances and threads. It is lazily loaded on first use, in order not to
slow down the application boot sequence.
This uses ~20 Mo of memory (only once for all threads), but makes tests
more that twice faster.
For instance, model tests go from **8m 21s** to **3m 26s**.
NB:
An additionnal optimization could be to preload the tester on
boot, before workers are forked, to take advantage of Puma copy-on-write
mechanism. In this way all forked workers would use the same cached
instance.
But:
- We're not actually sure this would work properly. What if Ruby updates
an interval ivar on the class, and this forces the OS to copy the
whole data structure in each fork?
- Puma phased restarts are not compatible with copy-on-write anyway.
So we're avoiding this optimisation for now, and take the extra 20 Mo
per worker.
2021-10-25 12:04:56 +02:00