Skip to content

Commit

Permalink
fix: ensure updates to files maintain original sha (#43)
Browse files Browse the repository at this point in the history
* fix: ensure updates to files maintain original sha

* pr: lint

* add correct sha
  • Loading branch information
jakebolam committed Jan 15, 2019
1 parent 2e9c115 commit 1ef92b6
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 4 deletions.
4 changes: 2 additions & 2 deletions src/ContentFiles/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ const AllContributorBotError = require('../utils/errors')
function modifyFiles({ contentFilesByPath, fileContentModifierFunction }) {
const newFilesByPath = {}
Object.entries(contentFilesByPath).forEach(
([filePath, { content, sha }]) => {
([filePath, { content, sha, originalSha }]) => {
const newFileContents = fileContentModifierFunction(content)
newFilesByPath[filePath] = {
content: newFileContents,
originalSha: sha,
originalSha: sha || originalSha,
}
},
)
Expand Down
27 changes: 27 additions & 0 deletions test/ContentFiles/__snapshots__/index.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,30 @@ Thanks goes to these wonderful people ([emoji key](https://github.com/all-contri
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!"
`;

exports[`ContentFiles Init content 2`] = `
"# TestContentFIles
[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors)
A test for content files generation
### Content
1. Stuff here
2. Yeah boy
## LICENSE
[MIT](LICENSE)
## Contributors
Thanks goes to these wonderful people ([emoji key](https://github.com/all-contributors/all-contributors#emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore -->
| [<img src=\\"https://avatars2.githubusercontent.com/u/3534236?v=4\\" width=\\"100px;\\" alt=\\"Jake Bolam\\"/><br /><sub><b>Jake Bolam</b></sub>](https://jakebolam.com)<br />[馃捇](#code-jakebolam \\"Code\\") [馃](#ideas-jakebolam \\"Ideas, Planning, & Feedback\\") [馃殗](#infra-jakebolam \\"Infrastructure (Hosting, Build-Tools, etc)\\") [鈿狅笍](#test-jakebolam \\"Tests\\") | [<img src=\\"https://avatars2.githubusercontent.com/u/7265547?v=4\\" width=\\"100px;\\" alt=\\"tbenning\\"/><br /><sub><b>tbenning</b></sub>](https://github.com/tbenning)<br />[馃帹](#design-tbenning \\"Design\\") |
| :---: | :---: |
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!"
`;
37 changes: 36 additions & 1 deletion test/ContentFiles/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,11 @@ describe('ContentFiles', () => {
const contentFiles = new ContentFiles({
repository: mockRepository,
})
const mockSha = 'mock sha right here yo'
contentFiles.contentFilesByPath = {
'README.md': {
content: mockTestFileContentNoTable,
sha: mockSha,
},
}

Expand All @@ -73,6 +75,39 @@ describe('ContentFiles', () => {
}
contentFiles.init(mockOptionsConfig)

expect(contentFiles.get()['README.md'].content).toMatchSnapshot()
const readme = contentFiles.get()['README.md']
expect(readme.content).toMatchSnapshot()
expect(readme.originalSha).toEqual(mockSha)

const mockOptionsConfig2 = {
get: function() {
return {
contributorsPerLine: 7,
contributors: [
{
login: 'jakebolam',
name: 'Jake Bolam',
avatar_url:
'https://avatars2.githubusercontent.com/u/3534236?v=4',
profile: 'https://jakebolam.com',
contributions: ['code', 'ideas', 'infra', 'test'],
},
{
login: 'tbenning',
name: 'tbenning',
avatar_url:
'https://avatars2.githubusercontent.com/u/7265547?v=4',
profile: 'https://github.com/tbenning',
contributions: ['design'],
},
],
}
},
}
contentFiles.generate(mockOptionsConfig2)

const readme2 = contentFiles.get()['README.md']
expect(readme2.content).toMatchSnapshot()
expect(readme2.originalSha).toEqual(mockSha)
})
})
3 changes: 2 additions & 1 deletion test/__snapshots__/index-e2e.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ exports[`All Contributors app - End to end Happy path, add correct new contribut
Object {
"branch": "all-contributors/add-jakebolam",
"content": "IyBBbGxDb250cmlidXRvcnNCb3QKWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTEtb3JhbmdlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKCNjb250cmlidXRvcnMpCkEgYm90IGZvciBhdXRvbWF0aWNhbGx5IGFkZGluZyBhbGwtY29udHJpYnV0b3JzLiDwn6SWCgpbIVtCdWlsZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jaXJjbGVjaS9wcm9qZWN0L2dpdGh1Yi9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90L21hc3Rlci5zdmcpXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90KQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2l0aHViL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3Quc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2dpdGh1Yi9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90KQpbIVtBbGwgQ29udHJpYnV0b3JzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2FsbF9jb250cmlidXRvcnMtMS1vcmFuZ2Uuc3ZnKV0oI2NvbnRyaWJ1dG9ycykKWyFbQ2hhdCBvbiBTbGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zbGFjay1qb2luLWZmNjliNC5zdmcpXShodHRwczovL2pvaW4uc2xhY2suY29tL3QvYWxsLWNvbnRyaWJ1dG9ycy9zaGFyZWRfaW52aXRlL2VuUXROVEUzT0RNeU1UQTROVGswTFRVd1pETXhaR1prTW1WaU16WXpZemsyWVRNMk5qUmtaR001WXpjMFpUYzVObVl6TldZM1kyUTBaVFkzWm1GaFpEZ3lZMkUzWm1Jek5XUXdNVFV4Wm1FKQoKCiMjIEluc3RhbGxhdGlvbgoxLiBJbnN0YWxsIEFwcAoyLiBQbGVhc2Ugc2V0dXAgeW91ciBgUkVBRE1FLm1kYCBhbmQgYC5hbGwtY29udHJpYnV0b3JzcmNgIHVzaW5nIHRoZSBbYWxsLWNvbnRyaWJ1dG9ycy1jbGkgdG9vbF0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1jbGkpCj4gSW4gdGhlIGZ1dHVyZSB3ZSB3YW50IHRvIHJlbW92ZSB0aGUgbmVlZCBmb3IgdGhlIENMSSB0b29sLCBpZiB5b3Ugd2FudCB0byBoZWxwIG91dCBbc2VlIHRoZSBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvaXNzdWVzLzMpCgoKIyMgVXNhZ2UKCiMjIyBBZGRpbmcgY29udHJpYnV0aW9ucwoxLiBDb21tZW50IG9uIElzc3VlL1BSIGV0YyB3aXRoIHRleHQ6IGBAQWxsQ29udHJpYnV0b3JCb3QgcGxlYXNlIGFkZCBqYWtlYm9sYW0gZm9yIGluZnJhc3RydWN0dXJlLCB0ZXN0aW5nIGFuZCBjb2RlYCAoQ2FuIGFsc28gdXNlIHRoZSBzaG9ydCB0ZXJtcywgZnVsbCBrZXkgY29taW5nIHNvb24pCjIuIEJvdCB3aWxsIGxvb2sgZm9yIGAuYWxsLWNvbnRyaWJ1dG9yc3JjYCBpZiBub3QgZm91bmQsIGNvbW1lbnRzIG9uIHByIHRvIHJ1biBzZXR1cAozLiBJZiB1c2VyIGV4aXN0cywgYWRkIG5ldyBjb250cmlidXRpb24sIGlmIG5vdCBhZGQgdXNlciBhbmQgYWRkIGNvbnRyaWJ1dGlvbgoKCiMjIENvbnRyaWJ1dGluZwpJZiB5b3UgaGF2ZSBzdWdnZXN0aW9ucyBmb3IgaG93IHRoZSBBbGxDb250cmlidXRvcnNCb3QgY291bGQgYmUgaW1wcm92ZWQsIG9yIHdhbnQgdG8gcmVwb3J0IGEgYnVnLCBbb3BlbiBhbiBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvaXNzdWVzKSEKCkZvciBtb3JlLCBjaGVjayBvdXQgdGhlIFtDb250cmlidXRpbmcgR3VpZGVdKENPTlRSSUJVVElORy5tZCkuCgojIyBDb250cmlidXRvcnMKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZSAtLT4KfCBbPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzUzNDIzNj92PTQiIHdpZHRoPSIxMDBweDsiIGFsdD0iSmFrZSBCb2xhbSIvPjxiciAvPjxzdWI+PGI+SmFrZSBCb2xhbTwvYj48L3N1Yj5dKGh0dHBzOi8vamFrZWJvbGFtLmNvbSk8YnIgLz5b8J+Su10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvY29tbWl0cz9hdXRob3I9amFrZWJvbGFtICJDb2RlIikgW/Cfk5ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90L2NvbW1pdHM/YXV0aG9yPWpha2Vib2xhbSAiRG9jdW1lbnRhdGlvbiIpIFvwn5qHXSgjaW5mcmEtamFrZWJvbGFtICJJbmZyYXN0cnVjdHVyZSAoSG9zdGluZywgQnVpbGQtVG9vbHMsIGV0YykiKSB8CnwgOi0tLTogfAo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+ClRoYW5rcyBnb2VzIHRvIHRoZXNlIHdvbmRlcmZ1bCBwZW9wbGUgKFtlbW9qaSBrZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMjZW1vamkta2V5KSk6Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUgLS0+CnwgWzxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM1MzQyMzY/dj00IiB3aWR0aD0iMTAwcHg7Ii8+PGJyIC8+PHN1Yj48Yj5KYWtlIEJvbGFtPC9iPjwvc3ViPl0oaHR0cHM6Ly9qYWtlYm9sYW0uY29tKTxiciAvPlvwn5K7XShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ0dW9ycy9ib3QvY29tbWl0cz9hdXRob3I9amFrZWJvbGFtICJDb2RlIikgW/CfpJRdKCNpZGVhcy1qYWtlYm9sYW0gIklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayIpIFvwn5qHXSgjaW5mcmEtamFrZWJvbGFtICJJbmZyYXN0cnVjdHVyZSAoSG9zdGluZywgQnVpbGQtVG9vbHMsIGV0YykiKSBb4pqg77iPXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ0dW9ycy9ib3QvY29tbWl0cz9hdXRob3I9amFrZWJvbGFtICJUZXN0cyIpIHwKfCA6LS0tOiB8CjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lCgojIyBMSUNFTlNFCgpbTUlUXShMSUNFTlNFKQo=",
"message": "docs: create README.md",
"message": "docs: update README.md",
"sha": "bfce087f5fbed22257de1ee5056b20de63da0a13",
}
`;
Expand Down

0 comments on commit 1ef92b6

Please sign in to comment.