diff --git a/tests/build-rss.test.js b/tests/build-rss.test.js index 953b9da2bad..91d1de40935 100644 --- a/tests/build-rss.test.js +++ b/tests/build-rss.test.js @@ -29,14 +29,8 @@ describe('rssFeed', () => { it('should generate RSS feed and write to file', async () => { jest.doMock('../config/posts.json', () => mockRssData, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() - } catch (err) { - error = err; - } + await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() - expect(error).toBeUndefined(); const filePath = path.join(__dirname, '..', 'public', outputPath); expect(fs.existsSync(filePath)).toBe(true); const fileContent = fs.readFileSync(filePath, 'utf8'); @@ -46,19 +40,14 @@ describe('rssFeed', () => { it('should prioritize featured posts over non-featured ones', async () => { jest.doMock('../config/posts.json', () => mockRssData, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() - } catch (err) { - error = err - } + await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() + const filePath = path.join(__dirname, '..', 'public', outputPath); const fileContent = fs.readFileSync(filePath, 'utf8'); const itemTitles = fileContent.match(/(.*?)<\/title>/g); - expect(error).toBeUndefined(); expect(itemTitles[1]).toContain('Test Post 1'); expect(itemTitles[2]).toContain('Another Featured Post'); expect(itemTitles[3]).toContain('Non-Featured Post 1'); @@ -67,19 +56,13 @@ describe('rssFeed', () => { it('should sort posts by date in descending order', async () => { jest.doMock('../config/posts.json', () => mockRssData, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() - } catch (err) { - error = err - } + await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() const filePath = path.join(__dirname, '..', 'public', outputPath); const fileContent = fs.readFileSync(filePath, 'utf8'); const itemTitles = fileContent.match(/<title>(.*?)<\/title>/g); - expect(error).toBeUndefined(); expect(itemTitles[1]).toContain('Test Post 1'); expect(itemTitles[2]).toContain('Another Featured Post'); expect(itemTitles[3]).toContain('Non-Featured Post 1'); @@ -90,17 +73,11 @@ describe('rssFeed', () => { it('should set correct enclosure type based on image extension', async () => { jest.doMock('../config/posts.json', () => mockRssData, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() - } catch (err) { - error = err - } + await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() const filePath = path.join(__dirname, '..', 'public', outputPath); const fileContent = fs.readFileSync(filePath, 'utf8'); - expect(error).toBeUndefined(); expect(fileContent).toContain('<enclosure url="https://www.asyncapi.com/img/test-cover.png"'); expect(fileContent).toContain('type="image/png"'); expect(fileContent).toContain('<enclosure url="https://www.asyncapi.com/img/test-cover.svg"'); @@ -114,13 +91,8 @@ describe('rssFeed', () => { const invalidOutputPath = "invalid/path"; - let error; - try { - await expect(rssFeed(type, title, desc, invalidOutputPath)).rejects.toThrow(/ENOENT|EACCES/); - } catch (err) { - error = err; - expect(error.message).toMatch(/ENOENT|EACCES/); - } + await expect(rssFeed(type, title, desc, invalidOutputPath)).rejects.toThrow(/ENOENT|EACCES/); + }); it('should throw an error when posts.json is malformed', async () => { @@ -128,28 +100,16 @@ describe('rssFeed', () => { return { invalidKey: [] }; }, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).rejects.toThrow('Failed to generate RSS feed'); - } catch (err) { - error = err; - expect(error).toBeDefined(); - expect(error.message).toContain('Failed to generate RSS feed'); - } + await expect(rssFeed(type, title, desc, outputPath)).rejects.toThrow('Failed to generate RSS feed'); + }); it('should handle empty posts array', async () => { const emptyMockData = { blog: [] }; jest.doMock('../config/posts.json', () => emptyMockData, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() - } catch (err) { - error = err; - } + await expect(rssFeed(type, title, desc, outputPath)).resolves.toBeUndefined() - expect(error).toBeUndefined(); const filePath = path.join(__dirname, '..', 'public', outputPath); const fileContent = fs.readFileSync(filePath, 'utf8'); expect(fileContent).toContain('<rss version="2.0"'); @@ -160,27 +120,15 @@ describe('rssFeed', () => { jest.doMock('../config/posts.json', () => incompletePostMockData, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).rejects.toThrow('Missing required fields'); - } catch (err) { - error = err; - expect(error).toBeDefined(); - expect(error.message).toContain('Missing required fields'); - } + await expect(rssFeed(type, title, desc, outputPath)).rejects.toThrow('Missing required fields'); + }); it('should throw an error when a post is missing a date field during sorting', async () => { jest.doMock('../config/posts.json', () => missingDateMockData, { virtual: true }); - let error; - try { - await expect(rssFeed(type, title, desc, outputPath)).rejects.toThrow('Missing date in post data'); - } catch (err) { - error = err; - expect(error).toBeDefined(); - expect(error.message).toContain('Missing date in post data'); - } + await expect(rssFeed(type, title, desc, outputPath)).rejects.toThrow('Missing date in post data'); + }); });