Skip to content

Commit

Permalink
feat: write an atom feed file
Browse files Browse the repository at this point in the history
write a atom feed file containing the latest 10 posts
  • Loading branch information
rafaelcamargo committed Aug 15, 2021
1 parent 86fb7c6 commit 3a71f19
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/services/homepage.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path');
const feedService = require('./feed');
const listService = require('./list');
const { fileService } = require('./file');
const { buildHrefPrefixes } = require('./homepage-href');
Expand Down Expand Up @@ -50,6 +51,7 @@ function buildHomepages(postSummaries, outputDirectory, { lang, availableLanguag
});
fileService.write(buildFilepath(outputDirectory, pageNumber), html);
});
feedService.build(postSummaryPages[0], lang);
}

function buildFilepath(outputDirectory, pageNumber){
Expand Down
20 changes: 20 additions & 0 deletions src/services/homepage.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const postsMock = require('../mocks/posts');
const feedService = require('./feed');
const { fileService } = require('./file');
const pageService = require('./page');
const homepageService = require('./homepage');
Expand All @@ -18,6 +19,7 @@ describe('Homepage Service', () => {
fileService.write = jest.fn();
fileService.copySync = jest.fn();
pageService.build = jest.fn();
feedService.build = jest.fn();
});

it('should build pages ordered by descending date', () => {
Expand Down Expand Up @@ -72,4 +74,22 @@ describe('Homepage Service', () => {
homepageService.build([first, second], outputDirectory);
expect(fileService.write).not.toHaveBeenCalledWith(`${outputDirectory}/l/en-US/index.html`, expect.any(String));
});

it('should write an atom feed file', () => {
stubPageBuild();
const [first] = postsMock;
homepageService.build([first], '');
expect(feedService.build).toHaveBeenCalledWith([first], undefined);
expect(feedService.build).toHaveBeenCalledTimes(1);
});

it('should write language-specific atom feed files if posts have been written in more than one language', () => {
stubPageBuild();
const [first, second, third] = postsMock;
homepageService.build(postsMock, '');
expect(feedService.build).toHaveBeenCalledWith([second, third, first], undefined);
expect(feedService.build).toHaveBeenCalledWith([second, first], 'en-US');
expect(feedService.build).toHaveBeenCalledWith([third], 'pt-BR');
expect(feedService.build).toHaveBeenCalledTimes(3);
});
});

0 comments on commit 3a71f19

Please sign in to comment.