Unverified Commit e00b5293 authored by Kourser's avatar Kourser
Browse files

Correctif : habillages joueur inexistants dans les réglages d'organisation

Le module Organisation proposait « GMAIL » et « OUTLOOK », qui ne sont
pas des valeurs de l'enum PlayerSkin : la base, le type partagé et les
feuilles de style connaissent DEFAULT, MICROSOFT et GOOGLE. D'où le
refus de « data.defaultPlayerSkin » à la compilation, et un réglage que
la base aurait rejeté.

Les trois valeurs réelles sont rétablies dans la validation, dans le
sélecteur — libellé comme dans le parcours de création — et dans les
fixtures de test.

Co-Authored-By: default avatarClaude Opus 5 <noreply@anthropic.com>
parent ab25ed32
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ const MERIDIEN: OrganisationDefaults = {
  sector: 'Industrie',
  socialAccountName: 'Groupe Méridien',
  socialAccountHandle: 'groupemeridien',
  defaultPlayerSkin: 'GMAIL',
  defaultPlayerSkin: 'GOOGLE',
  defaultContext: { ville: 'Nantes', prefecture: 'Loire-Atlantique' },
  logoPath: 'uploads/logo-meridien.png',
};
@@ -22,16 +22,16 @@ describe('exerciseSnapshot', () => {
  it("reprend l'identite de l'organisation quand rien n'est saisi", () => {
    const snap = exerciseSnapshot(MERIDIEN);
    expect(snap.sector).toBe('Industrie');
    expect(snap.playerSkin).toBe('GMAIL');
    expect(snap.playerSkin).toBe('GOOGLE');
    expect(snap.socialAccountName).toBe('Groupe Méridien');
    expect(snap.socialAccountLogoPath).toBe('uploads/logo-meridien.png');
    expect(snap.context).toEqual({ ville: 'Nantes', prefecture: 'Loire-Atlantique' });
  });

  it('laisse le choix explicite gagner', () => {
    const snap = exerciseSnapshot(MERIDIEN, { sector: 'Santé', playerSkin: 'OUTLOOK' });
    const snap = exerciseSnapshot(MERIDIEN, { sector: 'Santé', playerSkin: 'MICROSOFT' });
    expect(snap.sector).toBe('Santé');
    expect(snap.playerSkin).toBe('OUTLOOK');
    expect(snap.playerSkin).toBe('MICROSOFT');
  });

  it('traite un champ vide comme une absence de choix, pas comme un choix vide', () => {
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ import {
  MinLength,
} from 'class-validator';

const SKINS = ['DEFAULT', 'GMAIL', 'OUTLOOK'] as const;
const SKINS = ['DEFAULT', 'MICROSOFT', 'GOOGLE'] as const;

export class UpdateOrganisationDto {
  @IsOptional()
+3 −3
Original line number Diff line number Diff line
@@ -192,9 +192,9 @@ function Identity(): JSX.Element {
            {t('Habillage joueur par défaut')}
            <select value={skin} onChange={(e) => setSkin(e.target.value)}>
              <option value="">{t('Aucun (défaut du produit)')}</option>
              <option value="DEFAULT">DEFAULT</option>
              <option value="GMAIL">GMAIL</option>
              <option value="OUTLOOK">OUTLOOK</option>
              <option value="DEFAULT">Cythin (par défaut)</option>
              <option value="MICROSOFT">Microsoft (Outlook / 365)</option>
              <option value="GOOGLE">Google (Gmail / Workspace)</option>
            </select>
          </label>
        </div>