You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
8.4 KiB
180 lines
8.4 KiB
import { NightwatchBrowser } from "nightwatch"
|
|
|
|
const useIsoGit = process.argv.includes('--use-isogit');
|
|
let commitCount = 0
|
|
let branchCount = 0
|
|
const tests = {
|
|
before: function (browser: NightwatchBrowser, done: VoidFunction) {
|
|
browser.hideToolTips()
|
|
done()
|
|
},
|
|
|
|
'open default template': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.waitForElementVisible('*[data-id="remixIdeIconPanel"]', 10000)
|
|
.waitForElementVisible('button[data-id="landingPageImportFromTemplate"]')
|
|
.click('button[data-id="landingPageImportFromTemplate"]')
|
|
.waitForElementPresent('*[data-id="create-remixDefault"]')
|
|
.scrollAndClick('*[data-id="create-remixDefault"]')
|
|
.waitForElementVisible('*[data-id="modalDialogCustomPromptTextCreate"]')
|
|
.waitForElementPresent('[data-id="TemplatesSelectionModalDialogContainer-react"] .modal-ok')
|
|
.click('[data-id="TemplatesSelectionModalDialogContainer-react"] .modal-ok')
|
|
.pause(3000)
|
|
.windowHandles(function (result) {
|
|
console.log(result.value)
|
|
browser.switchWindow(result.value[1])
|
|
.waitForElementVisible('*[data-id="treeViewLitreeViewItemtests"]')
|
|
})
|
|
|
|
},
|
|
'Update settings for git #group1 #group2': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.clickLaunchIcon('dgit')
|
|
.pause(1000)
|
|
.waitForElementVisible('*[data-id="initgit-btn"]')
|
|
.click('*[data-id="initgit-btn"]')
|
|
.waitForElementNotPresent('*[data-id="initgit-btn"]')
|
|
},
|
|
'launch github login via FE #group1 #group2': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.clickLaunchIcon('filePanel')
|
|
.pause(1000)
|
|
.waitForElementVisible('*[data-id="filepanel-login-github"]')
|
|
.click('*[data-id="filepanel-login-github"]')
|
|
},
|
|
'login to github #group1 #group2': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.waitForElementVisible('*[data-id="github-panel"]')
|
|
.waitForElementVisible('*[data-id="gitubUsername"]')
|
|
.setValue('*[data-id="githubToken"]', process.env.dgit_token)
|
|
.pause(1000)
|
|
.setValue('*[data-id="gitubUsername"]', 'git')
|
|
.pause(1000)
|
|
.setValue('*[data-id="githubEmail"]', 'git@example.com')
|
|
.pause(1000)
|
|
.click('*[data-id="saveGitHubCredentials"]')
|
|
},
|
|
'check if the settings are loaded #group1 #group2': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.waitForElementVisible('*[data-id="connected-as-bunsenstraat"]')
|
|
.waitForElementVisible('*[data-id="connected-img-bunsenstraat"]')
|
|
.waitForElementVisible('*[data-id="connected-link-bunsenstraat"]')
|
|
.waitForElementVisible('*[data-id="remotes-panel"]')
|
|
},
|
|
'check the FE for the auth user #group1 #group2': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.clickLaunchIcon('filePanel')
|
|
.waitForElementVisible('*[data-id="filepanel-connected-img-bunsenstraat"]')
|
|
},
|
|
// pagination test
|
|
'clone repo #group3': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.clickLaunchIcon('dgit')
|
|
.waitForElementVisible('*[data-id="clone-panel"]')
|
|
.click('*[data-id="clone-panel"]')
|
|
.waitForElementVisible('*[data-id="clone-url"]')
|
|
.setValue('*[data-id="clone-url"]', 'https://github.com/yann300/remix-reward')
|
|
.waitForElementVisible('*[data-id="clone-branch"]')
|
|
.setValue('*[data-id="clone-branch"]', 'master')
|
|
.waitForElementVisible('*[data-id="clone-btn"]')
|
|
.click('*[data-id="clone-btn"]')
|
|
.clickLaunchIcon('filePanel')
|
|
.pause(5000)
|
|
.windowHandles(function (result) {
|
|
console.log(result.value)
|
|
browser.switchWindow(result.value[2])
|
|
.pause(1000)
|
|
.waitForElementVisible('*[data-id="treeViewLitreeViewItem.git"]')
|
|
})
|
|
},
|
|
'Update settings for git #group3': function (browser: NightwatchBrowser) {
|
|
browser.
|
|
clickLaunchIcon('dgit')
|
|
.waitForElementVisible('*[data-id="github-panel"]')
|
|
.pause(1000)
|
|
.click('*[data-id="github-panel"]')
|
|
.pause(1000)
|
|
.setValue('*[data-id="githubToken"]', 'invalidtoken')
|
|
.pause(1000)
|
|
.setValue('*[data-id="gitubUsername"]', 'git')
|
|
.pause(1000)
|
|
.setValue('*[data-id="githubEmail"]', 'git@example.com')
|
|
.pause(1000)
|
|
.click('*[data-id="saveGitHubCredentials"]')
|
|
.pause(1000)
|
|
.modalFooterOKClick('github-credentials-error')
|
|
},
|
|
'check the commits panel for pagination #group3': function (browser: NightwatchBrowser) {
|
|
browser
|
|
.waitForElementVisible('*[data-id="commits-panel"]')
|
|
.click('*[data-id="commits-panel"]')
|
|
.elements('xpath', '//*[@data-id="commits-current-branch-master"]//*[@data-type="commit-summary"]', function (result) {
|
|
console.log('Number of commit-summary elements:', (result.value as any).length);
|
|
if (useIsoGit) {
|
|
commitCount = (result.value as any).length
|
|
browser.assert.ok((result.value as any).length == 1)
|
|
} else {
|
|
commitCount = (result.value as any).length
|
|
browser.assert.ok((result.value as any).length > 2)
|
|
}
|
|
})
|
|
|
|
},
|
|
'load more commits #group3': function (browser: NightwatchBrowser) {
|
|
console.log('commitCount:', commitCount)
|
|
browser
|
|
.waitForElementVisible('*[data-id="load-more-commits"]')
|
|
.click('*[data-id="load-more-commits"]')
|
|
.waitForElementVisible('*[data-id="loader-indicator"]')
|
|
.waitForElementNotPresent('*[data-id="loader-indicator"]')
|
|
.pause(2000)
|
|
.elements('xpath', '//*[@data-id="commits-current-branch-master"]//*[@data-type="commit-summary"]', function (result) {
|
|
console.log('Number of commit-summary elements:', (result.value as any).length);
|
|
browser.assert.ok((result.value as any).length > commitCount)
|
|
})
|
|
},
|
|
'load more branches from remote #group3': function (browser: NightwatchBrowser) {
|
|
|
|
browser
|
|
.click('*[data-id="branches-panel"]')
|
|
.waitForElementVisible({
|
|
selector: '//*[@data-id="branches-panel-content-remote-branches"]',
|
|
locateStrategy: 'xpath'
|
|
})
|
|
.elements('xpath', '//*[@data-id="branches-panel-content-remote-branches"]//*[@data-type="branches-branch"]', function (result) {
|
|
console.log('Number of branches elements:', (result.value as any).length);
|
|
if (useIsoGit) {
|
|
branchCount = (result.value as any).length
|
|
browser.assert.ok((result.value as any).length == 1)
|
|
} else {
|
|
branchCount = (result.value as any).length
|
|
browser.assert.ok((result.value as any).length > 2)
|
|
}
|
|
})
|
|
|
|
|
|
if (useIsoGit) {
|
|
|
|
browser.waitForElementVisible('*[data-id="remote-sync-origin"]')
|
|
.click('*[data-id="remote-sync-origin"]')
|
|
.waitForElementVisible('*[data-id="loader-indicator"]')
|
|
.waitForElementNotPresent('*[data-id="loader-indicator"]')
|
|
.pause(2000)
|
|
.elements('xpath', '//*[@data-id="branches-panel-content-remote-branches"]//*[@data-type="branches-branch"]', function (result) {
|
|
console.log('Number of branches elements:', (result.value as any).length);
|
|
browser.assert.ok((result.value as any).length > branchCount)
|
|
})
|
|
} else {
|
|
browser.waitForElementVisible('*[data-id="show-more-branches-on-remote"]')
|
|
.click('*[data-id="show-more-branches-on-remote"]')
|
|
.pause(1000)
|
|
.elements('xpath', '//*[@data-id="branches-panel-content-remote-branches"]//*[@data-type="branches-branch"]', function (result) {
|
|
console.log('Number of branches elements:', (result.value as any).length);
|
|
browser.assert.ok((result.value as any).length > branchCount)
|
|
})
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
module.exports = tests |