Commit graph

8 commits

Author SHA1 Message Date
Timothy Andrew
d0e101e997 Fix all cycle analytics specs.
A number of failures were introduced due to performance
improvements (like pre-calculating metrics).
2016-09-20 13:23:14 +05:30
Timothy Andrew
204419e9e9 Test the CycleAnalytics::Summary model. 2016-09-20 13:23:14 +05:30
Timothy Andrew
0a767f7b61 Consolidate all cycle analytics helper methods.
1. Move the test generation to `CycleAnalyticsHelpers::TestGeneration`

2. Move all helper methods (previously placed in each individual spec
   file) to `CycleAnalyticsHelpers`
2016-09-07 14:29:12 +05:30
Timothy Andrew
32147ddf54 Add a test case for "end condition happens before start condition".
- In the cycle analytics specs.
2016-09-07 14:22:03 +05:30
Timothy Andrew
de483c6834 Test the production cycle analytics phase.
Add a `before_end_fn` option to the code that generates cycle analytics
specs. `before_end_fn` is called before the end conditions are. Used for
data setup that needs to be called after the start conditions and before
the end conditions.
2016-09-07 13:06:58 +05:30
Timothy Andrew
dd112ef117 Test the staging cycle analytics phase.
Remove overlap from the "start + end" durations in the happy test
case. For the `staging` phase, the end time is the _first_ deployment
that happens after the MR merge.

If we have 5 MRs where the `start_time`s (merge time) are the
same, and all the `end_time`s (deploy to production) a few days from
now, only the earliest deploy will get picked up, because that
consitutes a deploy for _all_ the MRs.

We fix this by removing overlap. Every `start_time` is now generated to
be _after_ the preceding `end_time`.
2016-09-07 12:12:51 +05:30
Timothy Andrew
f77c952ae7 Test the code cycle analytics phase.
- Move the "data belongs to other project" test case into the generated
  tests, and remove the explicit tests from the `code` and `plan` phases.
2016-09-07 10:39:46 +05:30
Timothy Andrew
98c9d12077 Refactor cycle analytics specs.
1. Generalise the specs that will be common across all cycle analytics
   phases.

2. Rewrite specs `issue` and `plan` to use this abstracted testing
   strategy.

3. Specs that are specific to a given phase, or unwieldy to test in an
   abstracted manner, are added to each phase's spec.
2016-09-02 17:43:03 +05:30