-
Notifications
You must be signed in to change notification settings - Fork 323
/
github-release.ts
64 lines (57 loc) · 2.42 KB
/
github-release.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/**
* Copyright 2019 Google LLC. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {readFileSync} from 'fs';
import {basename, resolve} from 'path';
import * as snapshot from 'snap-shot-it';
import {GitHubRelease} from '../src/github-release';
const fixturesPath = './test/fixtures';
describe('GitHubRelease', () => {
describe('extractLatestReleaseNotes', () => {
it('handles CHANGELOG with old and new format entries', () => {
const changelogContent =
readFileSync(resolve(fixturesPath, './CHANGELOG-old-new.md'), 'utf8')
.replace(/\r\n/g, '\n');
const latestReleaseNotes =
GitHubRelease.extractLatestReleaseNotes(changelogContent, 'v1.0.0');
snapshot(latestReleaseNotes);
});
it('handles CHANGELOG with old format entries', () => {
const changelogContent =
readFileSync(resolve(fixturesPath, './CHANGELOG-old.md'), 'utf8')
.replace(/\r\n/g, '\n');
const latestReleaseNotes =
GitHubRelease.extractLatestReleaseNotes(changelogContent, 'v2.1.0');
snapshot(latestReleaseNotes);
});
it('handles CHANGELOG with new format entries', () => {
const changelogContent =
readFileSync(resolve(fixturesPath, './CHANGELOG-new.md'), 'utf8')
.replace(/\r\n/g, '\n');
const latestReleaseNotes =
GitHubRelease.extractLatestReleaseNotes(changelogContent, 'v1.2.0');
snapshot(latestReleaseNotes);
});
// see: https://github.com/googleapis/release-please/issues/140
it('extracts appropriate release notes when prior release is patch', () => {
const changelogContent =
readFileSync(resolve(fixturesPath, './CHANGELOG-bug-140.md'), 'utf8')
.replace(/\r\n/g, '\n');
const latestReleaseNotes =
GitHubRelease.extractLatestReleaseNotes(changelogContent, 'v5.0.0');
snapshot(latestReleaseNotes);
});
});
});