import * as assert from 'node:assert/strict'; import { after, before, describe, it } from 'node:test'; import * as cheerio from 'cheerio'; import { fixLineEndings, loadFixture } from './test-utils.js'; describe('Content Collections - references', () => { let fixture; let devServer; before(async () => { fixture = await loadFixture({ root: './fixtures/content-collection-references/' }); }); const modes = ['dev', 'prod']; for (const mode of modes) { describe(mode, () => { before(async () => { if (mode === 'prod') { await fixture.build(); } else if (mode === 'dev') { devServer = await fixture.startDevServer(); } }); after(async () => { if (mode === 'dev') devServer?.stop(); }); describe(`JSON result`, () => { let json; before(async () => { if (mode === 'prod') { const rawJson = await fixture.readFile('/welcome-data.json'); json = JSON.parse(rawJson); } else if (mode === 'dev') { const rawJsonResponse = await fixture.fetch('/welcome-data.json'); const rawJson = await rawJsonResponse.text(); json = JSON.parse(rawJson); } }); it('Returns expected keys', () => { assert.ok(json.hasOwnProperty('welcomePost')); assert.ok(json.hasOwnProperty('banner')); assert.ok(json.hasOwnProperty('author')); assert.ok(json.hasOwnProperty('relatedPosts')); }); it('Returns `banner` data', () => { const { banner } = json; assert.ok(banner.hasOwnProperty('data')); assert.equal(banner.id, 'welcome'); assert.equal(banner.collection, 'banners'); assert.equal( banner.data.alt, 'Futuristic landscape with chrome buildings and blue skies' ); assert.equal(banner.data.src.width, 400); assert.equal(banner.data.src.height, 225); assert.equal(banner.data.src.format, 'jpg'); assert.equal(banner.data.src.src.includes('the-future'), true); }); it('Returns `author` data', () => { const { author } = json; assert.ok(author.hasOwnProperty('data')); assert.deepEqual(author, { id: 'nate-moore', collection: 'authors', data: { name: 'Nate Something Moore', twitter: 'https://twitter.com/n_moore', }, }); }); it('Returns `relatedPosts` data', () => { const { relatedPosts } = json; assert.equal(Array.isArray(relatedPosts), true, 'Expected relatedPosts to be an array'); const topLevelInfo = relatedPosts.map(({ data, body, ...meta }) => ({ ...meta, body: fixLineEndings(body).trim(), })); assert.deepEqual(topLevelInfo, [ { id: 'related-1.md', slug: 'related-1', body: '# Related post 1\n\nThis is related to the welcome post.', collection: 'blog', }, { id: 'related-2.md', slug: 'related-2', body: '# Related post 2\n\nThis is related to the welcome post.', collection: 'blog', }, ]); const postData = relatedPosts.map(({ data }) => data); assert.deepEqual(postData, [ { title: 'Related post 1', banner: { id: 'welcome', collection: 'banners' }, author: { id: 'fred-schott', collection: 'authors' }, }, { title: 'Related post 2', banner: { id: 'welcome', collection: 'banners' }, author: { id: 'ben-holmes', collection: 'authors' }, }, ]); }); }); describe(`Render result`, () => { let $; before(async () => { if (mode === 'prod') { const html = await fixture.readFile('/welcome/index.html'); $ = cheerio.load(html); } else if (mode === 'dev') { const htmlResponse = await fixture.fetch('/welcome'); const html = await htmlResponse.text(); $ = cheerio.load(html); } }); it('Renders `banner` data', () => { const banner = $('img[data-banner]'); assert.equal(banner.length, 1); assert.ok(banner.attr('src').includes('the-future')); assert.equal( banner.attr('alt'), 'Futuristic landscape with chrome buildings and blue skies' ); assert.equal(banner.attr('width'), '400'); assert.equal(banner.attr('height'), '225'); }); it('Renders `author` data', () => { const author = $('a[data-author-name]'); assert.equal(author.length, 1); assert.equal(author.attr('href'), 'https://twitter.com/n_moore'); assert.equal(author.text(), 'Nate Something Moore'); }); it('Renders `relatedPosts` data', () => { const relatedPosts = $('ul[data-related-posts]'); assert.equal(relatedPosts.length, 1); const relatedPost1 = relatedPosts.find('li').eq(0); assert.equal(relatedPost1.find('a').attr('href'), '/blog/related-1'); assert.equal(relatedPost1.find('a').text(), 'Related post 1'); const relatedPost2 = relatedPosts.find('li').eq(1); assert.equal(relatedPost2.find('a').attr('href'), '/blog/related-2'); assert.equal(relatedPost2.find('a').text(), 'Related post 2'); }); }); }); } }); ck-trace Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/webcore/JSReadableStreamDefaultReader.dep (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2022-06-15wip direct streamsGravatar Jarred Sumner 24-398/+2276
2022-06-12ArrayBufferSink works and it's good.Gravatar Jarred Sumner 26-170/+2054
2022-06-12Fix build issueGravatar Jarred Sumner 2-0/+6
2022-06-12Delete broken submoduleGravatar Jarred Sumner 1-0/+0
2022-06-10Update Dockerfile.baseGravatar Jarred Sumner 1-1/+1
2022-06-10Update WebKitGravatar Jarred Sumner 1-0/+0
2022-06-10Update event_loop.zigGravatar Jarred Sumner 1-0/+1
2022-06-10Missing errno on linuxGravatar Jarred Sumner 1-3/+1
2022-06-10Update js_parser.zigGravatar Jarred Sumner 1-21/+200
2022-06-10Update MakefileGravatar Jarred Sumner 1-4/+4
2022-06-10wip fix linux buildGravatar Jarred Sumner 1-9/+11
2022-06-10Don't show generic crash info when given invalid bunfig.tomlGravatar Jarred Sumner 1-0/+4
2022-06-10Update logger.zigGravatar Jarred Sumner 1-0/+4
2022-06-10Show tracingGravatar Jarred Sumner 1-1/+1
2022-06-10Update bunfig.zigGravatar Jarred Sumner 1-0/+1
2022-06-10Update jest.zigGravatar Jarred Sumner 1-6/+9
2022-06-09Update bun.d.tsGravatar Jarred Sumner 1-2/+5
2022-06-09Add typesGravatar Jarred Sumner 1-2/+32
2022-06-09`new Response(stream).arrayBuffer()` + 3 moreGravatar Jarred Sumner 16-39/+478
- `new Response(stream).arrayBuffer()` - `new Response(stream).json()` - `new Response(stream).text()` - `new Response(stream).blob()`
2022-06-09fix some memory leaks with stringsGravatar Jarred Sumner 4-28/+45
2022-06-09Support console.log(myBigInt)Gravatar Jarred Sumner 1-1/+6
2022-06-09Fix defaultProps with JSX optimizationGravatar Jarred Sumner 6-34/+73
2022-06-09small perf improvements to encodingGravatar Jarred Sumner 1-43/+37
2022-06-07Update event_loop.zigGravatar Jarred Sumner 1-1/+2