From eaf706e8f249e87da915d82e55749f78f1ea3d9d Mon Sep 17 00:00:00 2001 From: Muhammad Danish Date: Sat, 30 Dec 2023 15:49:17 +0500 Subject: [PATCH 1/3] Remove whitespace from branch name --- src/WingetCreateCore/Common/GitHub.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WingetCreateCore/Common/GitHub.cs b/src/WingetCreateCore/Common/GitHub.cs index 88246766..831a22c3 100644 --- a/src/WingetCreateCore/Common/GitHub.cs +++ b/src/WingetCreateCore/Common/GitHub.cs @@ -300,7 +300,7 @@ private async Task SubmitPRAsync(string packageId, string version, repo = await this.github.Repository.Get(this.wingetRepoOwner, this.wingetRepo); } - string newBranchName = $"{packageId}-{version}-{Guid.NewGuid()}"; + string newBranchName = $"{packageId}-{version}-{Guid.NewGuid()}".Replace(" ", string.Empty); string newBranchNameHeads = $"heads/{newBranchName}"; if (string.IsNullOrEmpty(prTitle)) From 6e98bbc803cd855fe12192d62c60812226bbce48 Mon Sep 17 00:00:00 2001 From: Muhammad Danish Date: Sat, 30 Dec 2023 19:02:56 +0500 Subject: [PATCH 2/3] add unit test --- .../TestPublisher.VersionWithWhitespace.yaml | 15 +++++++++++ .../UnitTests/GitHubTests.cs | 27 +++++++++++++++++++ .../WingetCreateTests.csproj | 3 +++ 3 files changed, 45 insertions(+) create mode 100644 src/WingetCreateTests/WingetCreateTests/Resources/TestPublisher.VersionWithWhitespace.yaml diff --git a/src/WingetCreateTests/WingetCreateTests/Resources/TestPublisher.VersionWithWhitespace.yaml b/src/WingetCreateTests/WingetCreateTests/Resources/TestPublisher.VersionWithWhitespace.yaml new file mode 100644 index 00000000..d02c8272 --- /dev/null +++ b/src/WingetCreateTests/WingetCreateTests/Resources/TestPublisher.VersionWithWhitespace.yaml @@ -0,0 +1,15 @@ +PackageIdentifier: TestPublisher.VersionWithWhitespace +PackageVersion: test whitespace version +PackageName: Test app +Publisher: Test publisher +License: MIT +ShortDescription: A manifest used to test the branch name is trimmed of whitespace. +InstallerLocale: en-US +Installers: + - Architecture: x64 + InstallerUrl: https://fakedomain.com/WingetCreateTestExeInstaller.exe + InstallerType: exe + InstallerSha256: A7803233EEDB6A4B59B3024CCF9292A6FFFB94507DC998AA67C5B745D197A5DC +PackageLocale: en-US +ManifestType: singleton +ManifestVersion: 1.0.0 \ No newline at end of file diff --git a/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs b/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs index 8f1e51a8..37ee358c 100644 --- a/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs +++ b/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs @@ -3,6 +3,7 @@ namespace Microsoft.WingetCreateUnitTests { + using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -77,5 +78,31 @@ public async Task GetLatestManifestAndSubmitPR() await this.gitHub.ClosePullRequest(pullRequest.Number); StringAssert.StartsWith(string.Format(GitHubPullRequestBaseUrl, this.WingetPkgsTestRepoOwner, this.WingetPkgsTestRepo), pullRequest.HtmlUrl, PullRequestFailedToGenerate); } + + /// + /// Verifies that the branch name is trimmed of whitespace when submitting a PR. Successful PR generation verifies that the branch name was trimmed. + /// + /// A representing the asynchronous unit test. + [Test] + public async Task RemoveWhitespaceFromBranchName() + { + string packageId = "TestPublisher.VersionWithWhitespace"; + List manifestContents = TestUtils.GetInitialManifestContent($"{packageId}.yaml"); + Manifests manifests = Serialization.DeserializeManifestContents(manifestContents); + Assert.That(manifests.SingletonManifest.PackageIdentifier, Is.EqualTo(packageId), FailedToRetrieveManifestFromId); + + PullRequest pullRequest = new(); + try + { + pullRequest = await this.gitHub.SubmitPullRequestAsync(manifests, this.SubmitPRToFork); + } + catch (Exception e) + { + Assert.Fail($"Failed to generate PR. {e.Message}"); + } + + await this.gitHub.ClosePullRequest(pullRequest.Number); + StringAssert.StartsWith(string.Format(GitHubPullRequestBaseUrl, this.WingetPkgsTestRepoOwner, this.WingetPkgsTestRepo), pullRequest.HtmlUrl, PullRequestFailedToGenerate); + } } } diff --git a/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj b/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj index fd6434bd..66da4bb8 100644 --- a/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj +++ b/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj @@ -36,6 +36,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest From 801b62a94a3f9d0ae0db76767ef52ff38e29d8d1 Mon Sep 17 00:00:00 2001 From: Muhammad Danish Date: Sun, 31 Dec 2023 14:53:29 +0500 Subject: [PATCH 3/3] pr -> pull request --- .../WingetCreateTests/UnitTests/GitHubTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs b/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs index 37ee358c..1d34180b 100644 --- a/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs +++ b/src/WingetCreateTests/WingetCreateTests/UnitTests/GitHubTests.cs @@ -98,7 +98,7 @@ public async Task RemoveWhitespaceFromBranchName() } catch (Exception e) { - Assert.Fail($"Failed to generate PR. {e.Message}"); + Assert.Fail($"Failed to generate pull request. {e.Message}"); } await this.gitHub.ClosePullRequest(pullRequest.Number);