mirror of
https://github.com/Unleash/unleash.git
synced 2025-07-17 13:46:47 +02:00
This PR updates the project status service (and schemas and UI) to use the project's current health instead of the 4-week average. I nabbed the `calculateHealthRating` from `src/lib/services/project-health-service.ts` instead of relying on the service itself, because that service relies on the project service, which relies on pretty much everything in the entire system. However, I think we can split the health service into a service that *does* need the project service (which is used for 1 of 3 methods) and a service (or read model) that doesn't. We could then rely on the second one for this service without too much overhead. Or we could extract the `calculateHealthRating` into a shared function that takes its stores as arguments. ... but I suggest doing that in a follow-up PR. Because the calculation has been tested other places (especially if we rely on a service / shared function for it), I've simplified the tests to just verify that it's present. I've changed the schema's `averageHealth` into an object in case we want to include average health etc. in the future, but this is up for debate.
49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
import { validateSchema } from '../validate';
|
|
import type { ProjectStatusSchema } from './project-status-schema';
|
|
|
|
test('projectStatusSchema', () => {
|
|
const data: ProjectStatusSchema = {
|
|
health: {
|
|
current: 50,
|
|
},
|
|
lifecycleSummary: {
|
|
initial: {
|
|
currentFlags: 0,
|
|
averageDays: null,
|
|
},
|
|
preLive: {
|
|
currentFlags: 0,
|
|
averageDays: null,
|
|
},
|
|
live: {
|
|
currentFlags: 0,
|
|
averageDays: null,
|
|
},
|
|
completed: {
|
|
currentFlags: 0,
|
|
averageDays: null,
|
|
},
|
|
archived: {
|
|
currentFlags: 0,
|
|
last30Days: 0,
|
|
},
|
|
},
|
|
activityCountByDate: [
|
|
{ date: '2022-12-14', count: 2 },
|
|
{ date: '2022-12-15', count: 5 },
|
|
],
|
|
resources: {
|
|
apiTokens: 2,
|
|
members: 1,
|
|
segments: 0,
|
|
},
|
|
staleFlags: {
|
|
total: 0,
|
|
},
|
|
};
|
|
|
|
expect(
|
|
validateSchema('#/components/schemas/projectStatusSchema', data),
|
|
).toBeUndefined();
|
|
});
|