fix(ombi): resolve TV request status, user, and date display (Issue #53)
Build and Push Docker Image / build (push) Successful in 1m46s
Licence Check / Licence compatibility and copyright header verification (push) Successful in 1m33s
CI / Security audit (push) Successful in 1m56s
CI / Swagger Validation & Coverage (push) Successful in 2m35s
CI / Tests & coverage (push) Successful in 2m51s
Build and Push Docker Image / build (push) Successful in 1m46s
Licence Check / Licence compatibility and copyright header verification (push) Successful in 1m33s
CI / Security audit (push) Successful in 1m56s
CI / Swagger Validation & Coverage (push) Successful in 2m35s
CI / Tests & coverage (push) Successful in 2m51s
Ombi's TV API nests all request data (requestedUser, approved, available, denied, requested, requestedDate) inside childRequests[] sub-objects. The application previously only inspected top-level properties, causing TV shows to consistently display 'unknown' status, 'unknown' user, and no request date. Changes: - OmbiRetriever._hydrateRequest(): hydrate requestedUser on each childRequests entry and promote requestedDate to top level - getRequestStatus() (server + client): aggregate status flags from childRequests[] when top-level properties are absent - Client date display: fallback to childRequests[0].requestedDate - Add 18 unit tests covering childRequests hydration, status aggregation, and date promotion Closes #53
This commit is contained in:
@@ -58,6 +58,40 @@ describe('getRequestStatus', () => {
|
||||
expect(getRequestStatus(makeRequest({ denied: true, approved: true }))).toBe('denied');
|
||||
expect(getRequestStatus(makeRequest({ approved: true, requested: true }))).toBe('approved');
|
||||
});
|
||||
|
||||
it('returns available from childRequests when top-level is absent (TV)', () => {
|
||||
expect(getRequestStatus({ childRequests: [{ available: true }] })).toBe('available');
|
||||
});
|
||||
|
||||
it('returns denied from childRequests when top-level is absent (TV)', () => {
|
||||
expect(getRequestStatus({ childRequests: [{ denied: true }] })).toBe('denied');
|
||||
});
|
||||
|
||||
it('returns approved from childRequests when top-level is absent (TV)', () => {
|
||||
expect(getRequestStatus({ childRequests: [{ approved: true }] })).toBe('approved');
|
||||
});
|
||||
|
||||
it('returns pending from childRequests when top-level is absent (TV)', () => {
|
||||
expect(getRequestStatus({ childRequests: [{ requested: true }] })).toBe('pending');
|
||||
});
|
||||
|
||||
it('follows priority inside childRequests: available > denied > approved > pending', () => {
|
||||
expect(getRequestStatus({ childRequests: [
|
||||
{ available: true, denied: true },
|
||||
{ approved: true }
|
||||
]})).toBe('available');
|
||||
expect(getRequestStatus({ childRequests: [
|
||||
{ denied: true, approved: true },
|
||||
{ requested: true }
|
||||
]})).toBe('denied');
|
||||
expect(getRequestStatus({ childRequests: [
|
||||
{ approved: true, requested: true }
|
||||
]})).toBe('approved');
|
||||
});
|
||||
|
||||
it('returns unknown for TV request with empty childRequests', () => {
|
||||
expect(getRequestStatus({ childRequests: [] })).toBe('unknown');
|
||||
});
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user