Barazo AppView backend barazo.forum
at main 76 lines 2.5 kB view raw
1import { describe, it, expect } from 'vitest' 2import { isMaturityLowerThan, isMaturityAtMost, ratingsAtMost } from '../../../src/lib/maturity.js' 3import type { MaturityRating } from '../../../src/lib/maturity.js' 4 5// --------------------------------------------------------------------------- 6// isMaturityLowerThan 7// --------------------------------------------------------------------------- 8 9describe('isMaturityLowerThan', () => { 10 const cases: Array<[MaturityRating, MaturityRating, boolean]> = [ 11 ['safe', 'safe', false], 12 ['safe', 'mature', true], 13 ['safe', 'adult', true], 14 ['mature', 'safe', false], 15 ['mature', 'mature', false], 16 ['mature', 'adult', true], 17 ['adult', 'safe', false], 18 ['adult', 'mature', false], 19 ['adult', 'adult', false], 20 ] 21 22 for (const [a, b, expected] of cases) { 23 it(`${a} < ${b} -> ${String(expected)}`, () => { 24 expect(isMaturityLowerThan(a, b)).toBe(expected) 25 }) 26 } 27}) 28 29// --------------------------------------------------------------------------- 30// isMaturityAtMost 31// --------------------------------------------------------------------------- 32 33describe('isMaturityAtMost', () => { 34 const cases: Array<[MaturityRating, MaturityRating, boolean]> = [ 35 ['safe', 'safe', true], 36 ['safe', 'mature', true], 37 ['safe', 'adult', true], 38 ['mature', 'safe', false], 39 ['mature', 'mature', true], 40 ['mature', 'adult', true], 41 ['adult', 'safe', false], 42 ['adult', 'mature', false], 43 ['adult', 'adult', true], 44 ] 45 46 for (const [a, b, expected] of cases) { 47 it(`${a} <= ${b} -> ${String(expected)}`, () => { 48 expect(isMaturityAtMost(a, b)).toBe(expected) 49 }) 50 } 51}) 52 53// --------------------------------------------------------------------------- 54// ratingsAtMost 55// --------------------------------------------------------------------------- 56 57describe('ratingsAtMost', () => { 58 it("returns only 'safe' for safe max level", () => { 59 expect(ratingsAtMost('safe')).toEqual(['safe']) 60 }) 61 62 it("returns 'safe' and 'mature' for mature max level", () => { 63 const result = ratingsAtMost('mature') 64 expect(result).toHaveLength(2) 65 expect(result).toContain('safe') 66 expect(result).toContain('mature') 67 }) 68 69 it('returns all ratings for adult max level', () => { 70 const result = ratingsAtMost('adult') 71 expect(result).toHaveLength(3) 72 expect(result).toContain('safe') 73 expect(result).toContain('mature') 74 expect(result).toContain('adult') 75 }) 76})