V10/bugfix/create simple package test (#13162)

* Fixed assert to hopefully find the package each time so it isnt flaky anymore

* Updated so it retries 5 times instead of 2

* Dont submit html-report

* Dont have output defined in npm run

* Copy over playwright trace.zip files before publishing

* Updated assert so it looks after the package in the table

* updated so we get the first fail as the trace file

* Bumped version for testhelpers

* Updated so the test checks if the package actually exists. Added a wait that checks if the created packages button is visible

* Updated package lock

* Fixed so it now calls the correct testhelper

Co-authored-by: Zeegaan <nge@umbraco.dk>
This commit is contained in:
Andreas Zerbst
2022-10-13 14:49:48 +02:00
committed by GitHub
parent 2fa61fe811
commit 41737a35d9
5 changed files with 35 additions and 14 deletions

View File

@@ -444,13 +444,12 @@ stages:
- pwsh: npx playwright install --with-deps
displayName: Install Playwright
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
- pwsh: npm run test --ignore-certificate-errors --output $(Build.ArtifactStagingDirectory)\test-results
- pwsh: npm run test --ignore-certificate-errors
displayName: Run Playwright (Desktop)
continueOnError: true
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
env:
CI: true
PLAYWRIGHT_HTML_REPORT: $(Build.ArtifactStagingDirectory)\playwright-report
- pwsh: |
docker logs $(dockerImageName) > $(Build.ArtifactStagingDirectory)/playwright.log 2>&1
docker stop $(dockerImageName)
@@ -459,6 +458,19 @@ stages:
- pwsh: Stop-Process $env:AcceptanceTestProcessId
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: Stop app (Windows only)
- task: PowerShell@2
displayName: Check if artifacts folder exists
inputs:
targetType: inline
script: |
$MyVariable = Test-Path -Path $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/results
Write-Host "##vso[task.setvariable variable=resultFolderExists;]$MyVariable"
- task: CopyFiles@2
displayName: Prepare artifacts
condition: eq(variables.resultFolderExists, 'True')
inputs:
sourceFolder: $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/results/
targetFolder: $(Build.ArtifactStagingDirectory)/playwright
- task: PublishPipelineArtifact@1
condition: always()
displayName: Publish test artifacts
@@ -466,6 +478,7 @@ stages:
targetPath: $(Build.ArtifactStagingDirectory)
artifact: 'E2E artifacts - $(Agent.OS) - Attempt #$(System.JobAttempt)'
###############################################
## Release
###############################################

View File

@@ -8,7 +8,7 @@
"hasInstallScript": true,
"dependencies": {
"@umbraco/json-models-builders": "^1.0.0",
"@umbraco/playwright-testhelpers": "^1.0.2",
"@umbraco/playwright-testhelpers": "^1.0.3",
"camelize": "^1.0.0",
"dotenv": "^16.0.2",
"faker": "^4.1.0",
@@ -101,9 +101,9 @@
}
},
"node_modules/@umbraco/playwright-testhelpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.2.tgz",
"integrity": "sha512-j1y6YRq2Rg5AXyYk/304P2rTrDCLU7Sz67/MMfkPBHSvadjdof7EW8649Aio29xGAg1YAR4y+Zeyw6XnM35ZkA==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.3.tgz",
"integrity": "sha512-PmUnIaoKitxAC4JWSiPEOPg74Ypt6DNLjUQEATV0n9yVbw5aFQhql+KrdN4F30gFNr1c6Gw6I5iDXzNmq5/zfg==",
"dependencies": {
"@umbraco/json-models-builders": "^1.0.0",
"camelize": "^1.0.0",
@@ -906,9 +906,9 @@
}
},
"@umbraco/playwright-testhelpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.2.tgz",
"integrity": "sha512-j1y6YRq2Rg5AXyYk/304P2rTrDCLU7Sz67/MMfkPBHSvadjdof7EW8649Aio29xGAg1YAR4y+Zeyw6XnM35ZkA==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.3.tgz",
"integrity": "sha512-PmUnIaoKitxAC4JWSiPEOPg74Ypt6DNLjUQEATV0n9yVbw5aFQhql+KrdN4F30gFNr1c6Gw6I5iDXzNmq5/zfg==",
"requires": {
"@umbraco/json-models-builders": "^1.0.0",
"camelize": "^1.0.0",

View File

@@ -19,7 +19,7 @@
},
"dependencies": {
"@umbraco/json-models-builders": "^1.0.0",
"@umbraco/playwright-testhelpers": "^1.0.2",
"@umbraco/playwright-testhelpers": "^1.0.3",
"camelize": "^1.0.0",
"faker": "^4.1.0",
"form-data": "^4.0.0",

View File

@@ -21,11 +21,11 @@ const config: PlaywrightTestConfig = {
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: process.env.CI ? 2 : 5,
retries: process.env.CI ? 5 : 2,
// We don't want to run parallel, as tests might differ in state
workers: 1,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: process.env.CI ? 'html' : 'line',
reporter: process.env.CI ? 'line' : 'html',
outputDir : "./results",
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
@@ -36,7 +36,7 @@ const config: PlaywrightTestConfig = {
// baseURL: 'http://localhost:44332',
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry',
trace: 'retain-on-failure',
ignoreHTTPSErrors: true,
},

View File

@@ -89,9 +89,17 @@ test.describe('Packages', () => {
// Navigate pack to packages and Assert the file is created
// Waits until the button download is visible
await page.locator('[label-key="general_download"]').isVisible();
// Checks if the packages was created
const doesExist = await umbracoApi.packages.doesNameExist(packageName);
await expect(doesExist).toBe(true);
await umbracoUi.goToSection(ConstantHelper.sections.packages);
// Needs to wait until the page has loaded and the button is clickable
await page.locator('[data-element="sub-view-umbCreatedPackages"]').isVisible();
await page.locator('[data-element="sub-view-umbCreatedPackages"]').click();
await expect(await page.locator("body", {hasText: packageName})).toBeVisible();
// Asserts that the package can be found in the table
await expect(await page.locator('.table-hover')).toHaveCount(1);
await expect(await page.locator('.table-hover').first()).toContainText(packageName);
// Cleanup
await umbracoApi.packages.ensureNameNotExists(packageName);