|
| 1 | +const { By, Key, until, Builder } = require('selenium-webdriver') |
| 2 | +require('chromedriver') |
| 3 | +const assert = require('assert') |
| 4 | +const { buildDriver, goToHome, captureScreensFor, teardown, findTableRow, doUntil } = require('../utils') |
| 5 | + |
| 6 | +const LoginPage = require('../pageobjects/LoginPage') |
| 7 | +const OverviewPage = require('../pageobjects/OverviewPage') |
| 8 | +const AdminTab = require('../pageobjects/AdminTab') |
| 9 | +const FeatureFlagsAdminTab = require('../pageobjects/FeatureFlagsAdminTab') |
| 10 | + |
| 11 | +describe('Feature flags in Admin tab', function () { |
| 12 | + let login |
| 13 | + let overview |
| 14 | + let ffTab |
| 15 | + let captureScreen |
| 16 | + |
| 17 | + before(async function () { |
| 18 | + driver = buildDriver() |
| 19 | + await goToHome(driver) |
| 20 | + login = new LoginPage(driver) |
| 21 | + overview = new OverviewPage(driver) |
| 22 | + adminTab = new AdminTab(driver) |
| 23 | + ffTab = new FeatureFlagsAdminTab(driver) |
| 24 | + captureScreen = captureScreensFor(driver, __filename) |
| 25 | + |
| 26 | + await login.login('guest', 'guest') |
| 27 | + if (!await overview.isLoaded()) { |
| 28 | + throw new Error('Failed to login') |
| 29 | + } |
| 30 | + await overview.selectRefreshOption("Do not refresh") |
| 31 | + }) |
| 32 | + |
| 33 | + it('it has at least one feature flag', async function () { |
| 34 | + await overview.clickOnAdminTab() |
| 35 | + await adminTab.clickOnFeatureFlags() |
| 36 | + let ffTable = await ffTab.getAll() |
| 37 | + assert(ffTable.length > 0) |
| 38 | + }) |
| 39 | + it('it has khepri_db feature flag', async function () { |
| 40 | + await overview.clickOnAdminTab() |
| 41 | + await adminTab.clickOnFeatureFlags() |
| 42 | + let ffTable = await ffTab.getAll() |
| 43 | + assert(findTableRow(ffTable, function(row) { |
| 44 | + return row[0] === 'khepri_db' |
| 45 | + })) |
| 46 | + }) |
| 47 | + it('enable khepri_db feature flag', async function () { |
| 48 | + await overview.clickOnAdminTab() |
| 49 | + await adminTab.clickOnFeatureFlags() |
| 50 | + let prev_state = await ffTab.getState('khepri_db') |
| 51 | + assert(!await prev_state.isSelected()) |
| 52 | + await ffTab.enable('khepri_db') |
| 53 | + await doUntil(async function() { |
| 54 | + return ffTab.getState('khepri_db') |
| 55 | + }, function(state) { |
| 56 | + return state.isSelected() |
| 57 | + }, 6000) |
| 58 | + |
| 59 | + }) |
| 60 | + |
| 61 | + |
| 62 | + after(async function () { |
| 63 | + await teardown(driver, this, captureScreen) |
| 64 | + }) |
| 65 | +}) |
0 commit comments