Barazo AppView backend
barazo.forum
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})