Skip to content

Commit 1ef92b6

Browse files
authored
fix: ensure updates to files maintain original sha (#43)
* fix: ensure updates to files maintain original sha * pr: lint * add correct sha
1 parent 2e9c115 commit 1ef92b6

File tree

4 files changed

+67
-4
lines changed

4 files changed

+67
-4
lines changed

src/ContentFiles/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ const AllContributorBotError = require('../utils/errors')
66
function modifyFiles({ contentFilesByPath, fileContentModifierFunction }) {
77
const newFilesByPath = {}
88
Object.entries(contentFilesByPath).forEach(
9-
([filePath, { content, sha }]) => {
9+
([filePath, { content, sha, originalSha }]) => {
1010
const newFileContents = fileContentModifierFunction(content)
1111
newFilesByPath[filePath] = {
1212
content: newFileContents,
13-
originalSha: sha,
13+
originalSha: sha || originalSha,
1414
}
1515
},
1616
)

test/ContentFiles/__snapshots__/index.test.js.snap

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,30 @@ Thanks goes to these wonderful people ([emoji key](https://github.com/all-contri
5454
5555
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!"
5656
`;
57+
58+
exports[`ContentFiles Init content 2`] = `
59+
"# TestContentFIles
60+
[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors)
61+
62+
A test for content files generation
63+
64+
### Content
65+
1. Stuff here
66+
2. Yeah boy
67+
68+
## LICENSE
69+
70+
[MIT](LICENSE)
71+
72+
## Contributors
73+
74+
Thanks goes to these wonderful people ([emoji key](https://github.com/all-contributors/all-contributors#emoji-key)):
75+
76+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
77+
<!-- prettier-ignore -->
78+
| [<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\\") |
79+
| :---: | :---: |
80+
<!-- ALL-CONTRIBUTORS-LIST:END -->
81+
82+
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!"
83+
`;

test/ContentFiles/index.test.js

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,11 @@ describe('ContentFiles', () => {
5858
const contentFiles = new ContentFiles({
5959
repository: mockRepository,
6060
})
61+
const mockSha = 'mock sha right here yo'
6162
contentFiles.contentFilesByPath = {
6263
'README.md': {
6364
content: mockTestFileContentNoTable,
65+
sha: mockSha,
6466
},
6567
}
6668

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

76-
expect(contentFiles.get()['README.md'].content).toMatchSnapshot()
78+
const readme = contentFiles.get()['README.md']
79+
expect(readme.content).toMatchSnapshot()
80+
expect(readme.originalSha).toEqual(mockSha)
81+
82+
const mockOptionsConfig2 = {
83+
get: function() {
84+
return {
85+
contributorsPerLine: 7,
86+
contributors: [
87+
{
88+
login: 'jakebolam',
89+
name: 'Jake Bolam',
90+
avatar_url:
91+
'https://avatars2.githubusercontent.com/u/3534236?v=4',
92+
profile: 'https://jakebolam.com',
93+
contributions: ['code', 'ideas', 'infra', 'test'],
94+
},
95+
{
96+
login: 'tbenning',
97+
name: 'tbenning',
98+
avatar_url:
99+
'https://avatars2.githubusercontent.com/u/7265547?v=4',
100+
profile: 'https://github.com/tbenning',
101+
contributions: ['design'],
102+
},
103+
],
104+
}
105+
},
106+
}
107+
contentFiles.generate(mockOptionsConfig2)
108+
109+
const readme2 = contentFiles.get()['README.md']
110+
expect(readme2.content).toMatchSnapshot()
111+
expect(readme2.originalSha).toEqual(mockSha)
77112
})
78113
})

test/__snapshots__/index-e2e.test.js.snap

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ exports[`All Contributors app - End to end Happy path, add correct new contribut
8080
Object {
8181
"branch": "all-contributors/add-jakebolam",
8282
"content": "IyBBbGxDb250cmlidXRvcnNCb3QKWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTEtb3JhbmdlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKCNjb250cmlidXRvcnMpCkEgYm90IGZvciBhdXRvbWF0aWNhbGx5IGFkZGluZyBhbGwtY29udHJpYnV0b3JzLiDwn6SWCgpbIVtCdWlsZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jaXJjbGVjaS9wcm9qZWN0L2dpdGh1Yi9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90L21hc3Rlci5zdmcpXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90KQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2l0aHViL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3Quc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2dpdGh1Yi9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90KQpbIVtBbGwgQ29udHJpYnV0b3JzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2FsbF9jb250cmlidXRvcnMtMS1vcmFuZ2Uuc3ZnKV0oI2NvbnRyaWJ1dG9ycykKWyFbQ2hhdCBvbiBTbGFja10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zbGFjay1qb2luLWZmNjliNC5zdmcpXShodHRwczovL2pvaW4uc2xhY2suY29tL3QvYWxsLWNvbnRyaWJ1dG9ycy9zaGFyZWRfaW52aXRlL2VuUXROVEUzT0RNeU1UQTROVGswTFRVd1pETXhaR1prTW1WaU16WXpZemsyWVRNMk5qUmtaR001WXpjMFpUYzVObVl6TldZM1kyUTBaVFkzWm1GaFpEZ3lZMkUzWm1Jek5XUXdNVFV4Wm1FKQoKCiMjIEluc3RhbGxhdGlvbgoxLiBJbnN0YWxsIEFwcAoyLiBQbGVhc2Ugc2V0dXAgeW91ciBgUkVBRE1FLm1kYCBhbmQgYC5hbGwtY29udHJpYnV0b3JzcmNgIHVzaW5nIHRoZSBbYWxsLWNvbnRyaWJ1dG9ycy1jbGkgdG9vbF0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1jbGkpCj4gSW4gdGhlIGZ1dHVyZSB3ZSB3YW50IHRvIHJlbW92ZSB0aGUgbmVlZCBmb3IgdGhlIENMSSB0b29sLCBpZiB5b3Ugd2FudCB0byBoZWxwIG91dCBbc2VlIHRoZSBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvaXNzdWVzLzMpCgoKIyMgVXNhZ2UKCiMjIyBBZGRpbmcgY29udHJpYnV0aW9ucwoxLiBDb21tZW50IG9uIElzc3VlL1BSIGV0YyB3aXRoIHRleHQ6IGBAQWxsQ29udHJpYnV0b3JCb3QgcGxlYXNlIGFkZCBqYWtlYm9sYW0gZm9yIGluZnJhc3RydWN0dXJlLCB0ZXN0aW5nIGFuZCBjb2RlYCAoQ2FuIGFsc28gdXNlIHRoZSBzaG9ydCB0ZXJtcywgZnVsbCBrZXkgY29taW5nIHNvb24pCjIuIEJvdCB3aWxsIGxvb2sgZm9yIGAuYWxsLWNvbnRyaWJ1dG9yc3JjYCBpZiBub3QgZm91bmQsIGNvbW1lbnRzIG9uIHByIHRvIHJ1biBzZXR1cAozLiBJZiB1c2VyIGV4aXN0cywgYWRkIG5ldyBjb250cmlidXRpb24sIGlmIG5vdCBhZGQgdXNlciBhbmQgYWRkIGNvbnRyaWJ1dGlvbgoKCiMjIENvbnRyaWJ1dGluZwpJZiB5b3UgaGF2ZSBzdWdnZXN0aW9ucyBmb3IgaG93IHRoZSBBbGxDb250cmlidXRvcnNCb3QgY291bGQgYmUgaW1wcm92ZWQsIG9yIHdhbnQgdG8gcmVwb3J0IGEgYnVnLCBbb3BlbiBhbiBpc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvaXNzdWVzKSEKCkZvciBtb3JlLCBjaGVjayBvdXQgdGhlIFtDb250cmlidXRpbmcgR3VpZGVdKENPTlRSSUJVVElORy5tZCkuCgojIyBDb250cmlidXRvcnMKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZSAtLT4KfCBbPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzUzNDIzNj92PTQiIHdpZHRoPSIxMDBweDsiIGFsdD0iSmFrZSBCb2xhbSIvPjxiciAvPjxzdWI+PGI+SmFrZSBCb2xhbTwvYj48L3N1Yj5dKGh0dHBzOi8vamFrZWJvbGFtLmNvbSk8YnIgLz5b8J+Su10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvY29tbWl0cz9hdXRob3I9amFrZWJvbGFtICJDb2RlIikgW/Cfk5ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMtYm90L2NvbW1pdHM/YXV0aG9yPWpha2Vib2xhbSAiRG9jdW1lbnRhdGlvbiIpIFvwn5qHXSgjaW5mcmEtamFrZWJvbGFtICJJbmZyYXN0cnVjdHVyZSAoSG9zdGluZywgQnVpbGQtVG9vbHMsIGV0YykiKSB8CnwgOi0tLTogfAo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+ClRoYW5rcyBnb2VzIHRvIHRoZXNlIHdvbmRlcmZ1bCBwZW9wbGUgKFtlbW9qaSBrZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMjZW1vamkta2V5KSk6Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUgLS0+CnwgWzxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM1MzQyMzY/dj00IiB3aWR0aD0iMTAwcHg7Ii8+PGJyIC8+PHN1Yj48Yj5KYWtlIEJvbGFtPC9iPjwvc3ViPl0oaHR0cHM6Ly9qYWtlYm9sYW0uY29tKTxiciAvPlvwn5K7XShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ0dW9ycy9ib3QvY29tbWl0cz9hdXRob3I9amFrZWJvbGFtICJDb2RlIikgW/CfpJRdKCNpZGVhcy1qYWtlYm9sYW0gIklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayIpIFvwn5qHXSgjaW5mcmEtamFrZWJvbGFtICJJbmZyYXN0cnVjdHVyZSAoSG9zdGluZywgQnVpbGQtVG9vbHMsIGV0YykiKSBb4pqg77iPXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ0dW9ycy9ib3QvY29tbWl0cz9hdXRob3I9amFrZWJvbGFtICJUZXN0cyIpIHwKfCA6LS0tOiB8CjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lCgojIyBMSUNFTlNFCgpbTUlUXShMSUNFTlNFKQo=",
83-
"message": "docs: create README.md",
83+
"message": "docs: update README.md",
84+
"sha": "bfce087f5fbed22257de1ee5056b20de63da0a13",
8485
}
8586
`;
8687

0 commit comments

Comments
 (0)