1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-07-17 13:46:47 +02:00
unleash.unleash/src/lib/openapi/spec/project-status-schema.test.ts
Thomas Heartman 04b2b488f6
chore(1-3133): change avg health to current health in project status (#8803)
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.
2024-11-20 11:41:45 +01:00

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();
});