This module covers the definition for Covered Experiences, as described in the [blueprint](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/covered_experience_slis/#covered-experience-definition).
## Usage
## Configuration
Covered experience definitions will be lazy loaded from the default directory (`config/covered_experiences`).
| `sync_slow` | A user is awaiting a synchronous response which needs to be returned before they can continue with their action, but which the user may accept a slower response | Displaying a full-text search response while displaying an amusement animation | 5s |
| `async_fast` | An async process which may block a user from continuing with their user journey | MR diff update after git push | 15s |
| `async_slow` | An async process which will not block a user and will not be immediately noticed as being slow | Notification following an assignment | 5m |
## Usage
The `Labkit::CoveredExperience` module provides a simple API for measuring and tracking covered experiences in your application.
expect{described_class['nonexistent']}.toraise_error(Labkit::CoveredExperience::NotFoundError,"Covered Experience nonexistent not found in the registry")
expect{described_class.get('nonexistent')}.toraise_error(Labkit::CoveredExperience::NotFoundError,"Covered Experience nonexistent not found in the registry")
end
end
end
describe'.start'do
context'when block is given'do
it'starts and automatically ends the experience'do