Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion src/type/repository-build-definition.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ const metapackageDefinition = require('./metapackage-definition');
* Defines release build instructions for a git repository.
*/
class repositoryBuildDefinition {
/**
* @type String|null Identifier of this repository in the build config, used to
* target it individually from a release refs file
*/
key = null;

/**
* @type String|null Git Repository URL
*/
Expand Down Expand Up @@ -79,9 +85,10 @@ class repositoryBuildDefinition {
extraRefToRelease = [];

/**
* @param {{repoUrl: String, packageDirs: Array, packageIndividual: Array, packageMetaFromDirs: Array, vendor: String, ref: String, fromTag: String, skipTags: {Object}, transform: Object.<String,Array>, fixVersions: {Object}, packageReplacements: {Object}, extraRefToRelease: Array, extraMetapackages: Array}}
* @param {{key: String, repoUrl: String, packageDirs: Array, packageIndividual: Array, packageMetaFromDirs: Array, vendor: String, ref: String, fromTag: String, skipTags: {Object}, transform: Object.<String,Array>, fixVersions: {Object}, packageReplacements: {Object}, extraRefToRelease: Array, extraMetapackages: Array}}
*/
constructor(options) {
this.key = options.key || this.key;
this.repoUrl = options.repoUrl || this.repoUrl;

this.vendor = options.vendor || this.vendor;
Expand Down
10 changes: 10 additions & 0 deletions tests/unit/type/repository-build-definition.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ describe('repositoryBuildDefinition', () => {
expect(def.ref).toBeNull();
});

it('should use null for key when not provided', () => {
const def = new repositoryBuildDefinition({});
expect(def.key).toBeNull();
});

it('should use null for fromTag when not provided', () => {
const def = new repositoryBuildDefinition({});
expect(def.fromTag).toBeNull();
Expand Down Expand Up @@ -63,6 +68,11 @@ describe('repositoryBuildDefinition', () => {
expect(def.ref).toBe('2.4-develop');
});

it('should use provided key', () => {
const def = new repositoryBuildDefinition({ key: 'magento2' });
expect(def.key).toBe('magento2');
});

it('should use provided fromTag', () => {
const def = new repositoryBuildDefinition({ fromTag: '2.4.0' });
expect(def.fromTag).toBe('2.4.0');
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/utils.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -496,8 +496,8 @@ describe('mergeBuildConfigs', () => {
const b = { 'my-repo': { repoUrl: 'https://example.com' } };
const result = mergeBuildConfigs(a, b);

// The key is added to the repositoryBuildDefinition - verify via the object
expect(result).toHaveLength(1);
expect(result[0].key).toBe('my-repo');
});

it('should override values from a with values from b', () => {
Expand Down
Loading