2024-07-08 15:06:36 +02:00
|
|
|
import {readFile} from 'node:fs/promises'
|
|
|
|
|
|
|
|
|
|
import test from 'ava';
|
|
|
|
|
|
2025-04-17 17:39:08 +02:00
|
|
|
import {getODSTableRawContent} from '../exports.js'
|
2024-07-08 15:06:36 +02:00
|
|
|
|
|
|
|
|
test('.ods file with table:number-columns-repeated attribute in cell', async t => {
|
2025-04-26 19:59:44 +02:00
|
|
|
const repeatedCellFileContent = (await readFile('./tests/fixtures/cellules-répétées.ods')).buffer
|
2024-07-08 15:06:36 +02:00
|
|
|
|
|
|
|
|
const table = await getODSTableRawContent(repeatedCellFileContent);
|
|
|
|
|
|
|
|
|
|
const feuille1 = table.get('Feuille 1')
|
|
|
|
|
|
|
|
|
|
t.deepEqual(feuille1[0].length, feuille1[1].length, `First and second row should have the same number of columns`)
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test('.ods cells with dates should be recognized', async t => {
|
2025-04-26 19:59:44 +02:00
|
|
|
const odsFileWithDates = (await readFile('./tests/fixtures/cellules avec dates.ods')).buffer
|
2024-07-08 15:06:36 +02:00
|
|
|
const table = await getODSTableRawContent(odsFileWithDates);
|
|
|
|
|
|
|
|
|
|
const feuille1 = table.get('Feuille1')
|
|
|
|
|
|
|
|
|
|
const row1 = feuille1[0]
|
|
|
|
|
t.deepEqual(row1[0].value, 'Nom')
|
|
|
|
|
t.deepEqual(row1[1].value, 'Date de naissance')
|
|
|
|
|
|
|
|
|
|
const row2 = feuille1[1]
|
|
|
|
|
t.deepEqual(row2[0].value, 'Dav')
|
|
|
|
|
t.deepEqual(row2[1].type, 'date')
|
|
|
|
|
t.deepEqual(row2[1].value, '1987-03-08')
|
|
|
|
|
|
|
|
|
|
const row3 = feuille1[2]
|
|
|
|
|
t.deepEqual(row3[0].value, 'Fanny')
|
|
|
|
|
t.deepEqual(row3[1].type, 'date')
|
|
|
|
|
t.deepEqual(row3[1].value, '1986-06-01')
|
2024-07-24 22:09:08 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test('.ods file with new lines in content is ', async t => {
|
2025-04-26 19:59:44 +02:00
|
|
|
const repeatedCellFileContent = (await readFile('./tests/fixtures/cellule avec sauts.ods')).buffer
|
2024-07-24 22:09:08 +02:00
|
|
|
|
|
|
|
|
const table = await getODSTableRawContent(repeatedCellFileContent);
|
|
|
|
|
|
|
|
|
|
const feuille1 = table.get('Feuille1')
|
|
|
|
|
|
2025-09-18 09:58:34 +02:00
|
|
|
const expectedValue = `Deviens génial, deviens génial
|
|
|
|
|
Tu n'sais pas encore l'enfer qui t'attend
|
|
|
|
|
Le regard des uns, le rejet des autres
|
|
|
|
|
Si t'es bizarre, si t'es pas marrant
|
|
|
|
|
Deviens génial, deviens génial
|
|
|
|
|
Deviens génial, deviens génial
|
|
|
|
|
Pourquoi t'aimeraient-ils seulement comme tu es ? (hein)
|
|
|
|
|
Si t'es pas comme eux quand t'es naturel`
|
2024-07-24 22:09:08 +02:00
|
|
|
|
|
|
|
|
t.deepEqual(feuille1[0][0].value, expectedValue)
|
2025-09-18 09:58:34 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('.ods cells with mails should be recognized', async t => {
|
|
|
|
|
const odsFileWithEmails = (await readFile('./tests/fixtures/cellules avec emails.ods')).buffer
|
|
|
|
|
const table = await getODSTableRawContent(odsFileWithEmails);
|
|
|
|
|
|
|
|
|
|
const feuille1 = table.get('Feuille1')
|
|
|
|
|
|
|
|
|
|
const row1 = feuille1[0]
|
|
|
|
|
t.deepEqual(row1[0].value, 'Nom')
|
|
|
|
|
t.deepEqual(row1[1].value, 'Email')
|
|
|
|
|
|
|
|
|
|
const row2 = feuille1[1]
|
|
|
|
|
|
|
|
|
|
t.deepEqual(row2[0].value, 'Dav')
|
|
|
|
|
t.deepEqual(row2[1].value, 'david@mail.fr')
|
|
|
|
|
|
|
|
|
|
const row3 = feuille1[2]
|
|
|
|
|
t.deepEqual(row3[0].value, 'Fanny')
|
|
|
|
|
t.deepEqual(row3[1].value, 'lemaildeFanny@cemail.com')
|
2024-07-08 15:06:36 +02:00
|
|
|
});
|