From e8b7d510bc84c827dd8533a55393d9be6a3fcd25 Mon Sep 17 00:00:00 2001 From: Izak Lipnik Date: Wed, 20 Dec 2017 12:08:29 +0100 Subject: [PATCH] fix(tests): fix docker images protractor tests (closes #319) --- e2e/030_docker_image.e2e.ts | 47 ------------------- e2e/{040_login.e2e.ts => 030_login.e2e.ts} | 0 ...itories.e2e.ts => 040_repositories.e2e.ts} | 0 e2e/{060_builds.e2e.ts => 050_builds.e2e.ts} | 0 e2e/{070_build.e2e.ts => 060_build.e2e.ts} | 0 e2e/{080_job.e2e.ts => 070_job.e2e.ts} | 0 ...epository.e2e.ts => 080_repository.e2e.ts} | 0 ..._bitbucket.e2e.ts => 090_bitbucket.e2e.ts} | 0 e2e/{110_gitlab.e2e.ts => 100_gitlab.e2e.ts} | 0 e2e/{120_gogs.e2e.ts => 110_gogs.e2e.ts} | 0 e2e/{130_team.e2e.ts => 120_team.e2e.ts} | 5 +- ..._dashboard.e2e.ts => 130_dashboard.e2e.ts} | 0 e2e/{150_images.e2e.ts => 140_images.e2e.ts} | 27 +++++++++-- 13 files changed, 25 insertions(+), 54 deletions(-) delete mode 100644 e2e/030_docker_image.e2e.ts rename e2e/{040_login.e2e.ts => 030_login.e2e.ts} (100%) rename e2e/{050_repositories.e2e.ts => 040_repositories.e2e.ts} (100%) rename e2e/{060_builds.e2e.ts => 050_builds.e2e.ts} (100%) rename e2e/{070_build.e2e.ts => 060_build.e2e.ts} (100%) rename e2e/{080_job.e2e.ts => 070_job.e2e.ts} (100%) rename e2e/{090_repository.e2e.ts => 080_repository.e2e.ts} (100%) rename e2e/{100_bitbucket.e2e.ts => 090_bitbucket.e2e.ts} (100%) rename e2e/{110_gitlab.e2e.ts => 100_gitlab.e2e.ts} (100%) rename e2e/{120_gogs.e2e.ts => 110_gogs.e2e.ts} (100%) rename e2e/{130_team.e2e.ts => 120_team.e2e.ts} (98%) rename e2e/{140_dashboard.e2e.ts => 130_dashboard.e2e.ts} (100%) rename e2e/{150_images.e2e.ts => 140_images.e2e.ts} (81%) diff --git a/e2e/030_docker_image.e2e.ts b/e2e/030_docker_image.e2e.ts deleted file mode 100644 index 4c80f1236..000000000 --- a/e2e/030_docker_image.e2e.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { browser, by, element } from 'protractor'; -import { isLoaded, delay } from './utils'; -import * as chai from 'chai'; -import * as chaiAsPromised from 'chai-as-promised'; - -chai.use(chaiAsPromised); -const expect = chai.expect; - -describe('Docker Image', () => { - - it('should login to access images', () => { - return browser.get('/login') - .then(() => browser.waitForAngularEnabled(false)) - .then(() => isLoaded()) - .then(() => element(by.css('.form-input[name="email"]')).sendKeys('john@gmail.com')) - .then(() => element(by.css('.form-input[name="password"]')).sendKeys('test123')) - .then(() => element(by.css('.login-button')).click()) - .then(() => isLoaded()) - .then(() => browser.getCurrentUrl()) - .then(url => expect(url).to.equal('http://localhost:6500/')) - .then(() => browser.waitForAngularEnabled(true)); - }); - - xit('should build initial docker image with name `abstruse`', () => { - return browser.get('/images') - .then(() => browser.waitForAngularEnabled(false)) - .then(() => isLoaded()) - .then(() => delay(5000)) - .then(() => browser.wait(() => element(by.css('[name="build-image-btn"]')).isPresent())) - .then(() => element(by.css('[name="build-image-btn"]')).click()) - .then(() => browser.wait(() => element(by.css('[name="build-done"]')).isPresent())) - .then(() => browser.waitForAngularEnabled(true)); - }); - - it('should logout out of abstruse', () => { - return browser.waitForAngularEnabled(false) - .then(() => browser.get('/')) - .then(() => isLoaded()) - .then(() => browser.wait(() => element(by.css('.user-item')).isPresent())) - .then(() => element(by.css('.user-item')).click()) - .then(() => element.all(by.css('.nav-dropdown-item')).last().click()) - .then(() => isLoaded()) - .then(() => browser.getCurrentUrl()) - .then(url => expect(url).to.equal('http://localhost:6500/login')) - .then(() => browser.waitForAngularEnabled(true)); - }); -}); diff --git a/e2e/040_login.e2e.ts b/e2e/030_login.e2e.ts similarity index 100% rename from e2e/040_login.e2e.ts rename to e2e/030_login.e2e.ts diff --git a/e2e/050_repositories.e2e.ts b/e2e/040_repositories.e2e.ts similarity index 100% rename from e2e/050_repositories.e2e.ts rename to e2e/040_repositories.e2e.ts diff --git a/e2e/060_builds.e2e.ts b/e2e/050_builds.e2e.ts similarity index 100% rename from e2e/060_builds.e2e.ts rename to e2e/050_builds.e2e.ts diff --git a/e2e/070_build.e2e.ts b/e2e/060_build.e2e.ts similarity index 100% rename from e2e/070_build.e2e.ts rename to e2e/060_build.e2e.ts diff --git a/e2e/080_job.e2e.ts b/e2e/070_job.e2e.ts similarity index 100% rename from e2e/080_job.e2e.ts rename to e2e/070_job.e2e.ts diff --git a/e2e/090_repository.e2e.ts b/e2e/080_repository.e2e.ts similarity index 100% rename from e2e/090_repository.e2e.ts rename to e2e/080_repository.e2e.ts diff --git a/e2e/100_bitbucket.e2e.ts b/e2e/090_bitbucket.e2e.ts similarity index 100% rename from e2e/100_bitbucket.e2e.ts rename to e2e/090_bitbucket.e2e.ts diff --git a/e2e/110_gitlab.e2e.ts b/e2e/100_gitlab.e2e.ts similarity index 100% rename from e2e/110_gitlab.e2e.ts rename to e2e/100_gitlab.e2e.ts diff --git a/e2e/120_gogs.e2e.ts b/e2e/110_gogs.e2e.ts similarity index 100% rename from e2e/120_gogs.e2e.ts rename to e2e/110_gogs.e2e.ts diff --git a/e2e/130_team.e2e.ts b/e2e/120_team.e2e.ts similarity index 98% rename from e2e/130_team.e2e.ts rename to e2e/120_team.e2e.ts index f69f28725..d53276ee6 100644 --- a/e2e/130_team.e2e.ts +++ b/e2e/120_team.e2e.ts @@ -265,7 +265,7 @@ describe('Teams', () => { .then(cnt => expect(cnt).to.equal(1)); }); - xit(`non admin user can remove his access token`, () => { + it(`non admin user can remove his access token`, () => { return browser.get('/team') .then(() => browser.wait(() => element(by.css('.edit-user-button')).isPresent())) .then((): any => element.all(by.css('.edit-user-button')).last().click()) @@ -273,7 +273,8 @@ describe('Teams', () => { .then((): any => element(by.css('[name="tab-tokens"]')).click()) .then(() => element.all(by.css('.access-token-item')).count()) .then(cnt => expect(cnt).to.equal(1)) - .then((): any => element.all(by.css('.ion-close')).first().click()) + .then((): any => element.all(by.css('[name="btn-removeToken"]')).first().click()) + .then(() => delay(100)) .then(() => element.all(by.css('.access-token-item')).count()) .then(cnt => expect(cnt).to.equal(0)); }); diff --git a/e2e/140_dashboard.e2e.ts b/e2e/130_dashboard.e2e.ts similarity index 100% rename from e2e/140_dashboard.e2e.ts rename to e2e/130_dashboard.e2e.ts diff --git a/e2e/150_images.e2e.ts b/e2e/140_images.e2e.ts similarity index 81% rename from e2e/150_images.e2e.ts rename to e2e/140_images.e2e.ts index 8beca0170..ec3cbc110 100644 --- a/e2e/150_images.e2e.ts +++ b/e2e/140_images.e2e.ts @@ -15,6 +15,23 @@ describe('Images', () => { return browser.get('/images') .then(() => element.all(by.css('.image-item')).count()) .then(cnt => expect(cnt).to.equals(0)) + .then(() => element.all(by.css('.base-image-item')).count()) + .then(cnt => { + if (cnt > 0) { + Promise.resolve(); + } else { + return browser.wait(() => element(by.css(`[name="tab-build-image"]`)).isPresent()) + .then((): any => element(by.css('[name="tab-build-image"]')).click()) + .then((): any => browser.wait(() => { + return element(by.css(`[name="build-image-btn"]`)).isPresent(); + })) + .then((): any => browser.wait(() => { + return element(by.css(`[name="build-image-btn"]`)).isEnabled(); + })) + .then(() => element.all(by.css(`[name="build-image-btn"]`)).first().click()); + } + }) + .then(() => delay(5000)) .then((): any => { return browser.wait(() => element.all(by.css('.base-image-item')).count() .then(cnt => cnt === 1)); @@ -74,7 +91,7 @@ describe('Images', () => { .then(txt => expect(txt).to.equals('FROM test-protractor-base-image')); }); - xit('should delete last base image and see only one base image', () => { + it('should try to delete last base image and cancel it at last warning', () => { return browser.get('/images') .then((): any => { return browser.wait(() => element.all(by.css('.base-image-item')).count() @@ -84,16 +101,16 @@ describe('Images', () => { .then(() => browser.wait(() => element(by.css('.ion-close')).isDisplayed())) .then(() => element(by.css('.ion-close')).click()) .then(() => element.all(by.css('.ion-close')).count()) - .then(cnt => expect(cnt).to.equals(3)) + .then(cnt => expect(cnt).to.equals(4)) .then(() => browser.wait(() => element(by.css('.ion-checkmark')).isPresent())) .then(() => browser.wait(() => element(by.css('.ion-checkmark')).isDisplayed())) - .then(() => element(by.css('.ion-checkmark')).click()) + .then(() => element.all(by.css('.ion-close')).first().click()) .then(() => delay(500)) .then((): any => { return browser.wait(() => element.all(by.css('.base-image-item')).count() - .then(cnt => cnt === 1)); + .then(cnt => cnt === 2)); }) .then(() => element.all(by.css('.ion-close')).count()) - .then(cnt => expect(cnt).to.equals(0)); + .then(cnt => expect(cnt).to.equals(3)); }); });