44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @license
							 | 
						||
| 
								 | 
							
								 * Copyright Google LLC All Rights Reserved.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Use of this source code is governed by an MIT-style license that can be
							 | 
						||
| 
								 | 
							
								 * found in the LICENSE file at https://angular.io/license
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import * as semver from 'semver';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import {DevInfraReleaseConfig, ReleaseConfig} from '../../../config';
							 | 
						||
| 
								 | 
							
								import {ReleaseNotes} from '../../release-notes/release-notes';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Mock version of the ReleaseNotes for testing, preventing actual calls to git for commits and
							 | 
						||
| 
								 | 
							
								 * returning versioned entry strings.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class MockReleaseNotes extends ReleaseNotes {
							 | 
						||
| 
								 | 
							
								  static async fromRange(version: semver.SemVer, startingRef: string, endingRef: string) {
							 | 
						||
| 
								 | 
							
								    return new MockReleaseNotes(version, startingRef, endingRef);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  async getChangelogEntry() {
							 | 
						||
| 
								 | 
							
								    return `Changelog Entry for ${this.version}`;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  async getGithubReleaseEntry() {
							 | 
						||
| 
								 | 
							
								    return `Github Release Entry for ${this.version}`;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Overrides of utility functions which call out to other tools and are unused in this mock.
							 | 
						||
| 
								 | 
							
								  protected async getCommitsInRange(from: string, to?: string) {
							 | 
						||
| 
								 | 
							
								    return [];
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  protected getReleaseConfig(config?: Partial<DevInfraReleaseConfig>) {
							 | 
						||
| 
								 | 
							
								    return {} as ReleaseConfig;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** Replace the ReleaseNotes static builder function with the MockReleaseNotes builder function. */
							 | 
						||
| 
								 | 
							
								export function installMockReleaseNotes() {
							 | 
						||
| 
								 | 
							
								  spyOn(ReleaseNotes, 'fromRange').and.callFake(MockReleaseNotes.fromRange);
							 | 
						||
| 
								 | 
							
								}
							 |