Files
vue-cli/packages/@vue/cli-ui/tests/e2e/specs/g1-projects.js
T
Guillaume Chau a09407dd5b feat(ui): Redesign, dashboard, local plugins (#2806)
* feat: basic fonctionality, welcome and kill port widgets

* fix: contrast improvements

* feat: plugin/dep/vulnerability widgets design

* fix: widget add/remove animation

* feat: run task widget

* feat: news + wip resizing

* feat: nuxt

* chore: removed widget example

* fix: visual polish for widget transform

* feat(widget): overlap detection

* fix: news default/max size

* feat(dashboard): sidepane transition

* chore: dev api server port

* fix(widget): configure tooltip

* refactor(widget): generic Movable mixin

* refactor(widget): resizable mixin

* feat(widget): resize transition

* feat(widget): resize improvements

* refactor(widget): zoom factor

* refactor(widget): OnGrid mixin

* refactor(widget): resize handler style moved to global

* chore: remove console.log

* refactor: files structure

* feat: improved design and layout

* fix: content background vars

* fix: status bar / view nav z-indexes

* fix: webpack dashboard grid gap

* feat(news feed): handle errors

* fix(card): dimmed box shadow

* fix: view nav & status bar z-index

* fix: remove (wip)

* feat(widget): style tweaks

* feat(widget): details pane (wip)

* feat: news feed widget improvements

* feat(widget): custom header button

* feat(news): item details pane

* feat(widget): custom title

* fix(news): better cache and misc fixes

* feat(widget): resize left and top handles

* feat(widget): transparent widget while moving/resizing

* feat(news): better "big size" style

* fix(news): media sizes in rich content

* feat(plugin): local plugins support

* fix: scrolling issue in Fx

* fix: colors

* fix(nav bar): more item overflowing

* feat(vuln): frontend

* chore: locale update

* fix: image in suggestion dropdown (dev)

* fix(suggestion): missing custom image

* feat(view): user default plugin logo if no provided icon

* feat(view): better loading UX

* feat(view): button background if view is selected

* feat(view): new nav indicator

* feat(widget): use plugin logo as default icon

* feat(widget): better widget modal

* feat(widget): longDescription

* fix(widget): news validate url param

* feat(widget): filter widgets in add pane

* feat(widget): tease upcoming widgets

* chore: fix merge dev

* chore: yarn install

* chore: sync versions

* chore: update apollo

* docs: widget

* fix(progress): graphql error

* fix(deps): localPath

* perf(plugin): faster local plugin refresh

* fix(nav): center active indicator

* feat(task): improved header

* feat(client addon): custom component load timeout message

* feat(suggestion): ping animation to improve discoverability

* chore: update vue-apollo

* feat(api): requestRoute

* fix(suggestion): hide more info link if no link

* fix(style): ul padding

* test(e2e): fix plugin path

* chore: change test scripts

* chore(deps): upgrade

* fix: build error

* fix(widget): removed moving scale transform

* fix(widget): resize handles style

* chore(deps): unpin apollo-utilities

* chore(deps): lock fix

* test(e2e): fix server

* fix: issue with writeQuery

See: https://github.com/apollographql/apollo-client/issues/4031#issuecomment-433668473

* test(e2e): fix tests

* test(e2e): missing widgets build

* fix: missing widgets dep
2018-10-28 04:10:34 +01:00

83 lines
3.2 KiB
JavaScript

describe('Vue project manager', () => {
it('Switches between tabs', () => {
cy.visit('/project/select')
cy.get('.project-select-list').should('be.visible')
cy.get('.tab-button').eq(1).click()
cy.get('.folder-explorer').should('be.visible')
cy.get('.tab-button').eq(2).click()
cy.get('.folder-explorer').should('be.visible')
cy.get('.tab-button').eq(0).click()
cy.get('.project-select-list').should('be.visible')
})
it('Creates a new project (manual)', () => {
cy.viewport(1400, 800)
cy.visit('/project/select')
cy.get('.tab-button').eq(1).click()
cy.get('.folder-explorer').should('be.visible')
cy.get('.create-project').click()
cy.get('.change-folder').click()
cy.get('.create').within(() => {
cy.get('.folder-explorer').should('be.visible')
cy.get('.edit-path-button').click()
cy.get('.path-input input').clear().type(Cypress.env('cwd') + '{enter}')
cy.get('.create-project').click()
})
cy.get('.details').within(() => {
cy.get('.app-name input').type('cli-ui-test')
cy.get('.force').click()
cy.get('.next').click()
})
cy.get('.presets').within(() => {
cy.get('[data-testid="__manual__"]').click()
cy.get('.next').click()
})
cy.get('.features').within(() => {
cy.get('[data-testid="pwa"] .bullet').click()
cy.get('[data-testid="router"] .bullet').click()
cy.get('[data-testid="vuex"] .bullet').click()
cy.get('[data-testid="use-config-files"] .bullet').click()
cy.get('.next').click()
})
cy.get('.config').within(() => {
cy.get('.vue-ui-select').eq(0).click()
})
cy.get('.vue-ui-select-button').eq(2).click()
cy.get('.config').within(() => {
cy.get('.vue-ui-switch').click({ multiple: true })
cy.get('.next').click()
})
cy.get('.save-preset-modal').within(() => {
cy.get('.continue').click()
})
cy.get('.loading-screen .vue-ui-loading-indicator').should('be.visible')
cy.get('.project-home', { timeout: 250000 }).should('be.visible')
cy.get('.project-nav .current-project').should('contain', 'cli-ui-test')
})
it('Favorites the project', () => {
cy.visit('/project/select')
cy.get('.project-select-list-item').eq(0).get('[data-testid="favorite-button"]').click()
cy.get('.cta-text.favorite').should('be.visible')
cy.get('.project-select-list-item').eq(0).get('[data-testid="favorite-button"]').click()
cy.get('.cta-text.favorite').should('not.exist')
})
it('Imports a project', () => {
cy.viewport(1400, 800)
cy.visit('/project/select')
cy.get('.project-select-list-item').eq(0).get('[data-testid="delete-button"]').click()
cy.get('.project-select-list-item').should('not.exist')
cy.get('.tab-button').eq(2).click()
cy.get('.import').within(() => {
cy.get('.folder-explorer').should('be.visible')
cy.get('.edit-path-button').click()
cy.get('.path-input input').clear().type(Cypress.env('cwd') + '{enter}')
cy.get(`.folder-explorer-item:contains('cli-ui-test')`).click()
cy.get('.import-project').should('not.have.class', 'disabled').click()
})
cy.get('.project-home').should('be.visible')
cy.get('.project-nav .current-project').should('contain', 'cli-ui-test')
})
})