diff --git a/backend/src/graphql/resolvers/messages.spec.ts b/backend/src/graphql/resolvers/messages.spec.ts index 291c71697..26a016248 100644 --- a/backend/src/graphql/resolvers/messages.spec.ts +++ b/backend/src/graphql/resolvers/messages.spec.ts @@ -18,6 +18,7 @@ import Room from '@graphql/queries/messaging/Room.gql' import { createApolloTestSetup } from '@root/test/helpers' import { chatMessageAddedFilter, chatMessageStatusUpdatedFilter } from './messages' +import resolvers from './messages' import type { ApolloTestSetup } from '@root/test/helpers' import type { Context } from '@src/context' @@ -852,4 +853,34 @@ describe('Message', () => { expect(result.errors?.[0].message).toContain('Message must have content or files') }) }) + + describe('File field resolvers', () => { + it('returns extension when present', () => { + expect(resolvers.File.extension({ extension: 'jpg' })).toBe('jpg') + }) + + it('returns null when extension is undefined', () => { + expect(resolvers.File.extension({})).toBeNull() + }) + + it('returns null when extension is null', () => { + expect(resolvers.File.extension({ extension: null })).toBeNull() + }) + + it('returns duration when present', () => { + expect(resolvers.File.duration({ duration: 5.3 })).toBe(5.3) + }) + + it('returns null when duration is undefined', () => { + expect(resolvers.File.duration({})).toBeNull() + }) + + it('returns null when duration is null', () => { + expect(resolvers.File.duration({ duration: null })).toBeNull() + }) + + it('returns duration 0 as valid', () => { + expect(resolvers.File.duration({ duration: 0 })).toBe(0) + }) + }) })