Tofu/tests/text/joinIngredientNames.test.js

25 lines
1 KiB
JavaScript

import test from 'node:test'
import assert from 'node:assert/strict'
import { joinIngredientNames } from '#tofu/tools/text/joinIngredientNames.js'
import { splitIngredientLine } from '#tofu/tools/text/splitIngredientLine.js'
test('joins the names with a comma and a space', () => {
assert.equal(joinIngredientNames(['gnocchis', 'beurre', 'sauge']), 'gnocchis, beurre, sauge')
})
test('ignores empty names and trims the kept ones', () => {
assert.equal(joinIngredientNames(['farine', '', ' ', ' lait ']), 'farine, lait')
assert.equal(joinIngredientNames([null, 'sel', undefined, 7]), 'sel')
})
test('returns an empty string for an empty or invalid list', () => {
assert.equal(joinIngredientNames([]), '')
assert.equal(joinIngredientNames(['', ' ']), '')
assert.equal(joinIngredientNames(null), '')
assert.equal(joinIngredientNames(undefined), '')
})
test('round trips with splitIngredientLine', () => {
const line = 'gnocchis, beurre, sauge, parmesan'
assert.equal(joinIngredientNames(splitIngredientLine(line)), line)
})