import { describe, expect, it } from 'vitest'
import {
  PERMISSION_KEYS,
  SYSTEM_ROLE_PERMISSIONS,
} from '../../src/seed/permission-keys'

describe('inventory permission keys', () => {
  it('seeds the dedicated inventory permission set', () => {
    expect(PERMISSION_KEYS).toContain('inventory:read')
    expect(PERMISSION_KEYS).toContain('inventory:write')
    expect(PERMISSION_KEYS).toContain('inventory:manage')
  })

  it('grants inventory access to the intended built-in roles', () => {
    expect(SYSTEM_ROLE_PERMISSIONS.OWNER).toContain('inventory:read')
    expect(SYSTEM_ROLE_PERMISSIONS.OWNER).toContain('inventory:write')
    expect(SYSTEM_ROLE_PERMISSIONS.OWNER).toContain('inventory:manage')

    expect(SYSTEM_ROLE_PERMISSIONS.ADMIN).toContain('inventory:read')
    expect(SYSTEM_ROLE_PERMISSIONS.ADMIN).toContain('inventory:write')
    expect(SYSTEM_ROLE_PERMISSIONS.ADMIN).toContain('inventory:manage')

    expect(SYSTEM_ROLE_PERMISSIONS.VIEWER).toContain('inventory:read')
    expect(SYSTEM_ROLE_PERMISSIONS.ACCOUNTANT).toContain('inventory:read')
    expect(SYSTEM_ROLE_PERMISSIONS.ACCOUNTANT).not.toContain('inventory:write')
    expect(SYSTEM_ROLE_PERMISSIONS.ACCOUNTANT).not.toContain('inventory:manage')
    expect(SYSTEM_ROLE_PERMISSIONS.MEMBER).toContain('inventory:read')
    expect(SYSTEM_ROLE_PERMISSIONS.MEMBER).toContain('inventory:write')
    expect(SYSTEM_ROLE_PERMISSIONS.MEMBER).not.toContain('inventory:manage')
  })
})
