|
1 | 1 | import { describe, expect, it } from '@jest/globals';
|
| 2 | +import { ChangesetConventionalCommit } from '../types'; |
2 | 3 | import {
|
3 | 4 | associateCommitsToConventionalCommitMessages,
|
| 5 | + difference, |
4 | 6 | getRepoRoot,
|
5 | 7 | gitFetch,
|
6 | 8 | isBreakingChange,
|
@@ -201,6 +203,72 @@ describe('associate-commits-to-conventional-commit-messages', () => {
|
201 | 203 | });
|
202 | 204 | });
|
203 | 205 |
|
| 206 | +describe('difference', () => { |
| 207 | + const changesets = [ |
| 208 | + { |
| 209 | + releases: [ |
| 210 | + { name: 'changeset-cc-test-01', type: 'minor' }, |
| 211 | + { name: 'changeset-cc-test-02', type: 'minor' }, |
| 212 | + ], |
| 213 | + summary: 'feat: add cli helper and flags', |
| 214 | + packagesChanged: [ |
| 215 | + { |
| 216 | + dir: '/z/merge-requests/changeset-conventional-commits/packages/test-01', |
| 217 | + relativeDir: 'packages/test-01', |
| 218 | + packageJson: {}, |
| 219 | + }, |
| 220 | + { |
| 221 | + dir: '/z/merge-requests/changeset-conventional-commits/packages/test-02', |
| 222 | + relativeDir: 'packages/test-02', |
| 223 | + packageJson: {}, |
| 224 | + }, |
| 225 | + ], |
| 226 | + }, |
| 227 | + { |
| 228 | + releases: [{ name: 'changeset-cc-test-01', type: 'minor' }], |
| 229 | + summary: 'docs(changeset-cc-test-01): add update #2 and #3', |
| 230 | + packagesChanged: [ |
| 231 | + { |
| 232 | + dir: '/z/merge-requests/changeset-conventional-commits/packages/test-01', |
| 233 | + relativeDir: 'packages/test-01', |
| 234 | + packageJson: {}, |
| 235 | + }, |
| 236 | + ], |
| 237 | + }, |
| 238 | + ] as ChangesetConventionalCommit[]; |
| 239 | + |
| 240 | + const currentChangesets = [ |
| 241 | + { |
| 242 | + releases: [ |
| 243 | + { name: 'changeset-cc-test-01', type: 'minor' }, |
| 244 | + { name: 'changeset-cc-test-02', type: 'minor' }, |
| 245 | + ], |
| 246 | + summary: 'feat: add cli helper and flags', |
| 247 | + packagesChanged: [ |
| 248 | + { |
| 249 | + dir: '/z/merge-requests/changeset-conventional-commits/packages/test-01', |
| 250 | + relativeDir: 'packages/test-01', |
| 251 | + packageJson: {}, |
| 252 | + }, |
| 253 | + { |
| 254 | + dir: '/z/merge-requests/changeset-conventional-commits/packages/test-02', |
| 255 | + relativeDir: 'packages/test-02', |
| 256 | + packageJson: {}, |
| 257 | + }, |
| 258 | + ], |
| 259 | + }, |
| 260 | + ] as ChangesetConventionalCommit[]; |
| 261 | + |
| 262 | + it('correctly detects equal changesets *without* trailing new line/line break within `summary`', () => { |
| 263 | + expect(difference(changesets, currentChangesets)).toEqual([changesets[1]]); |
| 264 | + }); |
| 265 | + |
| 266 | + it('correctly detects equal changesets *with* trailing new line/line break within `summary`', () => { |
| 267 | + changesets[0].summary += '\n'; |
| 268 | + expect(difference(changesets, currentChangesets)).toEqual([changesets[1]]); |
| 269 | + }); |
| 270 | +}); |
| 271 | + |
204 | 272 | describe('get-repo-root', () => {
|
205 | 273 | it('correctly gets the repo root', () => {
|
206 | 274 | expect(getRepoRoot().endsWith('changeset-conventional-commits')).toBe(true);
|
|
0 commit comments