diff --git a/app/paroles/[slug]/page.js b/app/paroles/[slug]/page.js index 68f1753..4065cae 100644 --- a/app/paroles/[slug]/page.js +++ b/app/paroles/[slug]/page.js @@ -3,7 +3,7 @@ import Box from '@mui/material/Box' import {jwennTeksEpiSlug} from '../../../lib/oki-api' import AnTeks from '../../../components/teks/an-teks' -import {getAlias} from '../../../lib/utils/format' +import {getAlias} from '../../../lib/utils/get-alias' import {formatKuveti} from '../../../lib/kuveti' import Footer from '../../../components/footer' diff --git a/components/akey/an-vedette.js b/components/akey/an-vedette.js index c22d285..cd4b0d3 100644 --- a/components/akey/an-vedette.js +++ b/components/akey/an-vedette.js @@ -10,7 +10,7 @@ import Chip from '@mui/material/Chip' import Image from 'next/image' import Link from 'next/link' -import {getAlias} from '../../lib/utils/format' +import {getAlias} from '../../lib/utils/get-alias' import {formatKuveti} from '../../lib/kuveti' const IMAGE_URL = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337' diff --git a/components/awtis/mizik-lyen.js b/components/awtis/mizik-lyen.js index bbd0134..30c4866 100644 --- a/components/awtis/mizik-lyen.js +++ b/components/awtis/mizik-lyen.js @@ -12,7 +12,7 @@ import LibraryMusicIcon from '@mui/icons-material/LibraryMusic' import ExplicitIcon from '@mui/icons-material/Explicit' import {esBrandNew} from '../../lib/date' -import {getAlias} from '../../lib/utils/format' +import {getAlias} from '../../lib/utils/get-alias' const apiUrl = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337' diff --git a/components/teks/lekte.js b/components/teks/lekte.js index 9cee8ee..c17ebc4 100644 --- a/components/teks/lekte.js +++ b/components/teks/lekte.js @@ -16,7 +16,7 @@ import Image from 'next/image' import {grey} from '@mui/material/colors' import {Link} from '@mui/material' -import {getAlias} from '../../lib/utils/format' +import {getAlias} from '../../lib/utils/get-alias' import {formatKuveti} from '../../lib/kuveti' const IMAGE_URL = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337' diff --git a/components/teks/teks-kat.js b/components/teks/teks-kat.js index 444eef8..7c25595 100644 --- a/components/teks/teks-kat.js +++ b/components/teks/teks-kat.js @@ -15,7 +15,7 @@ import Grid from '@mui/material/Grid' import ExplicitIcon from '@mui/icons-material/Explicit' import {styled} from '@mui/material/styles' -import {getAlias} from '../../lib/utils/format' +import {getAlias} from '../../lib/utils/get-alias' import {formatKuveti} from '../../lib/kuveti' const PREFIX = 'teks-kat' diff --git a/components/teks/teks.js b/components/teks/teks.js index f96b5c4..7306eda 100644 --- a/components/teks/teks.js +++ b/components/teks/teks.js @@ -18,7 +18,8 @@ import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos' import Image from 'next/image' -import {formatJsonString, getAlias} from '../../lib/utils/format' +import {formatJsonString} from '../../lib/utils/format' +import {getAlias} from '../../lib/utils/get-alias' import {formatKuveti} from '../../lib/kuveti' import LicenseModal from '../cc/license-modal' diff --git a/lib/utils/__tests__/get-alias.test.js b/lib/utils/__tests__/get-alias.test.js new file mode 100644 index 0000000..537815d --- /dev/null +++ b/lib/utils/__tests__/get-alias.test.js @@ -0,0 +1,26 @@ +import {describe, it, expect} from 'vitest' +import {getAlias} from '../get-alias' + +describe('getAlias', () => { + it('retourne une chaîne vide sans planter quand artistes est undefined', () => { + expect(getAlias(undefined)).toBe('') + }) + + it('retourne une chaîne vide sans planter quand artistes est un tableau vide', () => { + expect(getAlias([])).toBe('') + }) + + it('retourne l\'alias unique quand il n\'y a qu\'un artiste', () => { + expect(getAlias([{id: 1, alias: 'Foo'}])).toBe('Foo') + }) + + it('ignore un id de priorité qui ne correspond à aucun artiste (donnée obsolète)', () => { + const artistes = [{id: 1, alias: 'Foo'}, {id: 2, alias: 'Bar'}] + expect(getAlias(artistes, '1-99-2')).toBe('Foo et Bar') + }) + + it('formate plusieurs artistes selon la priorité fournie', () => { + const artistes = [{id: 1, alias: 'Foo'}, {id: 2, alias: 'Bar'}] + expect(getAlias(artistes, '2-1')).toBe('Bar et Foo') + }) +}) diff --git a/lib/utils/format.js b/lib/utils/format.js index e798515..42c4117 100644 --- a/lib/utils/format.js +++ b/lib/utils/format.js @@ -1,54 +1,2 @@ -import slugify from 'slugify' - export const formatJsonString = stringToFormat => stringToFormat.split('\n').map((string, index) =>