Skip to content
Snippets Groups Projects
Select Git revision
21 results Searching

update.js

Blame
  • modules.spec.ts 6.71 KiB
    import {
      azureDevOpsSshRefMatchRegex,
      bitbucketRefMatchRegex,
      gitTagsRefMatchRegex,
      githubRefMatchRegex,
    } from './modules';
    
    describe('modules/manager/terraform/modules', () => {
      describe('githubRefMatchRegex', () => {
        it('should split project and tag from source', () => {
          const groups = githubRefMatchRegex.exec(
            'github.com/hashicorp/example?ref=v1.0.0'
          )?.groups;
          expect(groups).toEqual({
            project: 'hashicorp/example',
            tag: 'v1.0.0',
          });
        });
    
        it('should parse alpha-numeric characters as well as dots, underscores, and dashes in repo names', () => {
          const groups = githubRefMatchRegex.exec(
            'github.com/hashicorp/example.repo-123?ref=v1.0.0'
          )?.groups;
          expect(groups).toEqual({
            project: 'hashicorp/example.repo-123',
            tag: 'v1.0.0',
          });
        });
      });
    
      describe('gitTagsRefMatchRegex', () => {
        it('should split project and tag from source', () => {
          const http = gitTagsRefMatchRegex.exec(
            'http://github.com/hashicorp/example?ref=v1.0.0'
          )?.groups;
          const https = gitTagsRefMatchRegex.exec(
            'https://github.com/hashicorp/example?ref=v1.0.0'
          )?.groups;
          const ssh = gitTagsRefMatchRegex.exec(
            'ssh://github.com/hashicorp/example?ref=v1.0.0'
          )?.groups;
    
          expect(http).toMatchObject({
            project: 'hashicorp/example',
            tag: 'v1.0.0',
          });
          expect(https).toMatchObject({
            project: 'hashicorp/example',
            tag: 'v1.0.0',
          });
          expect(ssh).toMatchObject({
            project: 'hashicorp/example',
            tag: 'v1.0.0',
          });
        });
    
        it('should parse alpha-numeric characters as well as dots, underscores, and dashes in repo names', () => {
          const http = gitTagsRefMatchRegex.exec(
            'http://github.com/hashicorp/example.repo-123?ref=v1.0.0'
          )?.groups;
          const https = gitTagsRefMatchRegex.exec(
            'https://github.com/hashicorp/example.repo-123?ref=v1.0.0'
          )?.groups;
          const ssh = gitTagsRefMatchRegex.exec(
            'ssh://github.com/hashicorp/example.repo-123?ref=v1.0.0'
          )?.groups;
    
          const withoutSshHttpHttps = gitTagsRefMatchRegex.exec(
            'git@my-gitlab-instance.local:devops/terraform/instance.git?ref=v5.0.0'
          )?.groups;