- Timestamp:
- 08/13/2026 07:37:56 PM (4 weeks ago)
- Branches:
- main
- Children:
- 47db4b5
- Parents:
- 822d16d
- File:
-
- 1 edited
-
test/following-csv.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/following-csv.test.js
r822d16d rf926d13 141 141 assert.match(String(r.files.get('following.csv')), /jason@a\.example,,,,true/); 142 142 }); 143 144 // De uploadweg. De parser kan prima werken terwijl het formulier niets doorgeeft, 145 // en dat merk je pas als je met een echt bestand voor de knop staat. 146 test('een geupload bestand wordt gelezen, ook met de BOM die Excel ervoor zet', async () => { 147 const multer = (await import('multer')).default; 148 const express = (await import('express')).default; 149 150 const up = multer({ storage: multer.memoryStorage(), limits: { fileSize: 512 * 1024, files: 1 } }).single('csvfile'); 151 const app = express(); 152 app.post('/t', up, (req, res) => { 153 const csv = (req.file && req.file.buffer) 154 ? req.file.buffer.toString('utf8').replace(/^/, '') 155 : ((req.body && req.body.csv) || ''); 156 res.json({ bron: req.file ? 'bestand' : 'plakveld', rijen: parseFollowingCsv(csv) }); 157 }); 158 159 const srv = app.listen(0); 160 await new Promise((r) => srv.once('listening', r)); 161 const url = `http://127.0.0.1:${srv.address().port}/t`; 162 const csv = 'Account address,Show boosts,Notify on new posts,Languages,Featured\n' 163 + 'jason@a.example,,,,true\n'; 164 try { 165 const fd = new FormData(); 166 fd.append('csvfile', new Blob([`${csv}`], { type: 'text/csv' }), 'following.csv'); 167 const a = await (await fetch(url, { method: 'POST', body: fd })).json(); 168 assert.equal(a.bron, 'bestand'); 169 assert.deepEqual(a.rijen, [{ address: 'jason@a.example', featured: true }], 170 'de BOM mag niet in het eerste adres blijven plakken'); 171 172 // Het plakveld moet blijven werken naast de upload. 173 const fd2 = new FormData(); 174 fd2.append('csv', csv); 175 const b = await (await fetch(url, { method: 'POST', body: fd2 })).json(); 176 assert.equal(b.bron, 'plakveld'); 177 assert.deepEqual(b.rijen, [{ address: 'jason@a.example', featured: true }]); 178 } finally { 179 srv.close(); 180 } 181 });
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)