Optimise WikiPage spec
What does this MR do?
This MR optimises
WikiPage spec which was flagged as a slow test #229654 (closed).
Locally the spec has reduced from
We used to spend
~35s creating factories, and we now spend
~3s doing this.
[TEST PROF INFO] Factories usage Total: 416 Total top-level: 207 Total time: 35.2881s Total uniq factories: 6 total top-level total time time per call top-level time name 132 113 29.1420s 0.2208s 25.1820s project 132 0 5.5594s 0.0421s 0.0000s namespace 92 92 9.8735s 0.1073s 9.8735s wiki_page 30 1 1.3980s 0.0466s 0.2216s user 29 0 1.1805s 0.0407s 0.0000s wiki 1 1 0.0110s 0.0110s 0.0110s license
[TEST PROF INFO] Factories usage Total: 116 Total top-level: 99 Total time: 3.1782s Total uniq factories: 6 total top-level total time time per call top-level time name 95 84 0.0227s 0.0002s 0.0205s wiki 11 11 1.0874s 0.0989s 1.0874s wiki_page 4 2 1.7510s 0.4377s 1.2710s project 4 0 0.1755s 0.0439s 0.0000s namespace 1 1 0.0164s 0.0164s 0.0164s license 1 1 0.7830s 0.7830s 0.7830s user
Previously, we were creating a new
project for each test, which had the benefit of starting each test with a blank wiki repository. The change to persist the
project between tests means we reuse the same wiki repository.
In order to make this safer for this test, I've removed the top-level
let (used for tests of saved wiki pages) as we don't want to encourage the risk of tests modifying data that can persist between groups of tests.
Wiki pages need to have unique
titles, and the factory will create a unique title if none is supplied. For tests that rely on specific titles in the test, I've modified these to use a different title for each test (previously they were all
Does this MR meet the acceptance criteria?
- [-] Changelog entry
- [-] Documentation (if required)
- Code review guidelines
- Merge request performance guidelines
- Style guides
- [-] Database guides
- [-] Separation of EE specific content