👷 e2e tests for dashboard

Including test for signing/singup, projects, files, teams, and misc
This commit is contained in:
Pablo Alba 2022-01-25 09:33:52 +01:00
parent 26e5d57ced
commit 5103624fe0
32 changed files with 1285 additions and 127 deletions

View file

@ -237,7 +237,7 @@
(mf/defc register-validate-page
[{:keys [params] :as props}]
[:div.form-container
[:h1 (tr "auth.register-title")]
[:h1 {:data-test "register-title"} (tr "auth.register-title")]
[:div.subtitle (tr "auth.register-subtitle")]
[:& register-validate-form {:params params}]

View file

@ -101,7 +101,7 @@
[:span i/arrow-slide]
parent-option]]
[:li.separator]])
(for [[index [option-name option-handler sub-options]] (d/enumerate (:options level))]
(for [[index [option-name option-handler sub-options data-test]] (d/enumerate (:options level))]
(when option-name
(if (= option-name :separator)
[:li.separator]
@ -111,12 +111,14 @@
(if-not sub-options
[:a.context-menu-action {:on-click #(do (dom/stop-propagation %)
(on-close)
(option-handler %))}
(option-handler %))
:data-test data-test}
(if (and in-dashboard? (= option-name "Default"))
(tr "dashboard.default-team-name")
option-name)]
[:a.context-menu-action.submenu
{:data-no-close true
:on-click (enter-submenu option-name sub-options)}
:on-click (enter-submenu option-name sub-options)
:data-test data-test}
option-name
[:span i/arrow-slide]])])))])]])))

View file

@ -55,6 +55,7 @@
[:div.dashboard-comments-section
[:div.button
{:on-click show-dropdown
:data-test "open-comments"
:class (dom/classnames :open @show-dropdown?
:unread (boolean (seq tgroups)))}
i/chat]

View file

@ -203,27 +203,28 @@
(for [sub-project (:projects team)]
[(get-project-name sub-project)
(on-move (:id team)
(:id sub-project))])])]))
(:id sub-project))])])
"move-to-other-team"]))
options (if multi?
[[(tr "dashboard.duplicate-multi" file-count) on-duplicate]
[[(tr "dashboard.duplicate-multi" file-count) on-duplicate nil "duplicate-multi"]
(when (or (seq current-projects) (seq other-teams))
[(tr "dashboard.move-to-multi" file-count) nil sub-options])
[(tr "dashboard.move-to-multi" file-count) nil sub-options "move-to-multi"])
[(tr "dashboard.export-multi" file-count) on-export-files]
[:separator]
[(tr "labels.delete-multi-files" file-count) on-delete]]
[(tr "labels.delete-multi-files" file-count) on-delete nil "delete-multi-files"]]
[[(tr "dashboard.open-in-new-tab") on-new-tab]
[(tr "labels.rename") on-edit]
[(tr "dashboard.duplicate") on-duplicate]
[(tr "labels.rename") on-edit nil "file-rename"]
[(tr "dashboard.duplicate") on-duplicate nil "file-duplicate"]
(when (or (seq current-projects) (seq other-teams))
[(tr "dashboard.move-to") nil sub-options])
[(tr "dashboard.move-to") nil sub-options "file-move-to"])
(if (:is-shared file)
[(tr "dashboard.remove-shared") on-del-shared]
[(tr "dashboard.add-shared") on-add-shared])
[(tr "dashboard.export-single") on-export-files]
[(tr "dashboard.remove-shared") on-del-shared nil "file-del-shared"]
[(tr "dashboard.add-shared") on-add-shared nil "file-add-shared"])
[(tr "dashboard.export-single") on-export-files nil "file-export"]
[:separator]
[(tr "labels.delete") on-delete]])]
[(tr "labels.delete") on-delete nil "file-delete"]])]
[:& context-menu {:on-close on-menu-close
:show show?

View file

@ -70,7 +70,7 @@
(with-meta {::ev/origin "project"}))))
(swap! local assoc :edition false)))}]
[:div.dashboard-title
[:h1 {:on-double-click on-edit}
[:h1 {:on-double-click on-edit :data-test "project-title"}
(:name project)]]))
[:& project-menu {:project project
@ -82,7 +82,7 @@
:on-import on-import}]
[:div.dashboard-header-actions
[:a.btn-secondary.btn-small {:on-click on-create-clicked}
[:a.btn-secondary.btn-small {:on-click on-create-clicked :data-test "new-file"}
(tr "dashboard.new-file")]
(when-not (:is-default project)

View file

@ -149,10 +149,10 @@
[:span (tr "dashboard.fonts.fonts-added" (i18n/c (count (vals @fonts))))]
[:div.table-field.options
[:div.btn-primary
{:on-click #(on-upload-all (vals @fonts))}
{:on-click #(on-upload-all (vals @fonts)) :data-test "upload-all"}
[:span (tr "dashboard.fonts.upload-all")]]
[:div.btn-secondary
{:on-click #(on-dismiss-all (vals @fonts))}
{:on-click #(on-dismiss-all (vals @fonts)) :data-test "dismiss-all"}
[:span (tr "dashboard.fonts.dismiss-all")]]]])
(for [item (sort-by :font-family (vals @fonts))]
@ -277,8 +277,8 @@
:fixed? false
:top -15
:left -115
:options [[(tr "labels.edit") #(reset! edit? true)]
[(tr "labels.delete") on-delete]]}]])]))
:options [[(tr "labels.edit") #(reset! edit? true) nil "font-edit"]
[(tr "labels.delete") on-delete nil "font-delete"]]}]])]))
(mf/defc installed-fonts

View file

@ -21,7 +21,7 @@
[potok.core :as ptk]
[rumext.alpha :as mf]))
(log/set-level! :warn)
(log/set-level! :debug)
(def ^:const emit-delay 1000)

View file

@ -108,19 +108,20 @@
:top top
:left left
:options [(when-not (:is-default project)
[(tr "labels.rename") on-edit])
[(tr "labels.rename") on-edit nil "project-rename"])
(when-not (:is-default project)
[(tr "dashboard.duplicate") on-duplicate])
[(tr "dashboard.duplicate") on-duplicate nil "project-duplicate"])
(when-not (:is-default project)
[(tr "dashboard.pin-unpin") toggle-pin])
(when (and (seq teams) (not (:is-default project)))
[(tr "dashboard.move-to") nil
(for [team teams]
[(:name team) (on-move (:id team))])])
[(:name team) (on-move (:id team))])
"project-move-to"])
(when (some? on-import)
[(tr "dashboard.import") on-import-files])
[(tr "dashboard.import") on-import-files nil "file-import"])
(when-not (:is-default project)
[:separator])
(when-not (:is-default project)
[(tr "labels.delete") on-delete])]}]]))
[(tr "labels.delete") on-delete nil "project-delete"])]}]]))

View file

@ -30,7 +30,7 @@
[:div.dashboard-title
[:h1 (tr "dashboard.projects-title")]]
[:a.btn-secondary.btn-small {:on-click create}
[:a.btn-secondary.btn-small {:on-click create :data-test "new-project-button"}
(tr "dashboard.new-project")]]))
(mf/defc project-item
@ -140,11 +140,11 @@
i/pin)])
[:a.btn-secondary.btn-small.tooltip.tooltip-bottom
{:on-click create-file :alt (tr "dashboard.new-file")}
{:on-click create-file :alt (tr "dashboard.new-file") :data-test "project-new-file"}
i/close]
[:a.btn-secondary.btn-small.tooltip.tooltip-bottom
{:on-click on-menu-click :alt (tr "dashboard.options")}
{:on-click on-menu-click :alt (tr "dashboard.options") :data-test "project-options"}
i/actions]]
[:& line-grid

View file

@ -221,7 +221,7 @@
[:span.team-text {:title (:name team)} (:name team)]]])
[:hr]
[:li.action {:on-click on-create-clicked}
[:li.action {:on-click on-create-clicked :data-test "create-new-team"}
(tr "dashboard.create-new-team")]]))
(s/def ::member-id ::us/uuid)
@ -349,21 +349,21 @@
:on-accept delete-fn}))]
[:ul.dropdown.options-dropdown
[:li {:on-click go-members} (tr "labels.members")]
[:li {:on-click go-settings} (tr "labels.settings")]
[:li {:on-click go-members :data-test "team-members"} (tr "labels.members")]
[:li {:on-click go-settings :data-test "team-settings"} (tr "labels.settings")]
[:hr]
[:li {:on-click on-rename-clicked} (tr "labels.rename")]
[:li {:on-click on-rename-clicked :data-test "rename-team"} (tr "labels.rename")]
(cond
(get-in team [:permissions :is-owner])
[:li {:on-click on-leave-as-owner-clicked} (tr "dashboard.leave-team")]
[:li {:on-click on-leave-as-owner-clicked :data-test "leave-team"} (tr "dashboard.leave-team")]
(> (count members) 1)
[:li {:on-click on-leave-clicked} (tr "dashboard.leave-team")])
(when (get-in team [:permissions :is-owner])
[:li {:on-click on-delete-clicked} (tr "dashboard.delete-team")])]))
[:li {:on-click on-delete-clicked :data-test "delete-team"} (tr "dashboard.delete-team")])]))
(mf/defc sidebar-team-switch
@ -466,13 +466,14 @@
[:div.sidebar-content-section
[:ul.sidebar-nav.no-overflow
[:li.recent-projects
[:li
{:on-click go-fonts
:data-test "fonts"
:class-name (when fonts? "current")}
[:span.element-title (tr "labels.fonts")]]]]
[:hr]
[:div.sidebar-content-section
[:div.sidebar-content-section {:data-test "pinned-projects"}
(if (seq pinned-projects)
[:ul.sidebar-nav
(for [item pinned-projects]

View file

@ -48,7 +48,7 @@
[:a {:on-click go-settings} (tr "labels.settings")]]]]
(if (and members-section? (:is-admin permissions))
[:a.btn-secondary.btn-small {:on-click invite-member}
[:a.btn-secondary.btn-small {:on-click invite-member :data-test "invite-member"}
(tr "dashboard.invite-profile")]
[:div])]))

View file

@ -51,7 +51,7 @@
[:h2 (tr "onboarding.choice.fly-solo")]
[:p (tr "onboarding.choice.fly-solo-desc")]]]
[:div.modal-right
[:div.content-button {:on-click on-team-up}
[:div.content-button {:on-click on-team-up :data-test "team-up-button"}
[:h2 (tr "onboarding.choice.team-up")]
[:p (tr "onboarding.choice.team-up-desc")]]]]
[:img.deco {:src "images/deco-left.png" :border "0"}]
@ -72,7 +72,7 @@
[:div.modal-overlay
[:div.modal-container.onboarding-team
[:div.title
[:h2 (tr "onboarding.choice.team-up")]
[:h2 {:data-test "onboarding-choice-team-up"} (tr "onboarding.choice.team-up")]
[:p (tr "onboarding.choice.team-up-desc")]]
[:& fm/form {:form form

View file

@ -74,7 +74,7 @@
:data-test "close-templates-btn"} i/close]]
[:div.modal-content
[:h3 (tr "onboarding.templates.title")]
[:h3 {:data-test "onboarding-templates-title"} (tr "onboarding.templates.title")]
[:p (tr "onboarding.templates.subtitle")]
[:div.templates

View file

@ -87,7 +87,7 @@
[:hr]
[:li {:on-click show-release-notes}
[:li {:on-click show-release-notes :data-test "release-notes"}
i/pencil
[:span.element-title (tr "labels.release-notes")]]

View file

@ -75,17 +75,20 @@
[:li.tooltip.tooltip-right
{:alt (tr "workspace.toolbar.frame" (sc/get-tooltip :draw-frame))
:class (when (= selected-drawtool :frame) "selected")
:on-click (partial select-drawtool :frame)}
:on-click (partial select-drawtool :frame)
:data-test "artboard-btn"}
i/artboard]
[:li.tooltip.tooltip-right
{:alt (tr "workspace.toolbar.rect" (sc/get-tooltip :draw-rect))
:class (when (= selected-drawtool :rect) "selected")
:on-click (partial select-drawtool :rect)}
:on-click (partial select-drawtool :rect)
:data-test "rect-btn"}
i/box]
[:li.tooltip.tooltip-right
{:alt (tr "workspace.toolbar.ellipse" (sc/get-tooltip :draw-ellipse))
:class (when (= selected-drawtool :circle) "selected")
:on-click (partial select-drawtool :circle)}
:on-click (partial select-drawtool :circle)
:data-test "ellipse-btn"}
i/circle]
[:li.tooltip.tooltip-right
{:alt (tr "workspace.toolbar.text" (sc/get-tooltip :draw-text))
@ -98,12 +101,14 @@
[:li.tooltip.tooltip-right
{:alt (tr "workspace.toolbar.curve" (sc/get-tooltip :draw-curve))
:class (when (= selected-drawtool :curve) "selected")
:on-click (partial select-drawtool :curve)}
:on-click (partial select-drawtool :curve)
:data-test "curve-btn"}
i/pencil]
[:li.tooltip.tooltip-right
{:alt (tr "workspace.toolbar.path" (sc/get-tooltip :draw-path))
:class (when (= selected-drawtool :path) "selected")
:on-click (partial select-drawtool :path)}
:on-click (partial select-drawtool :path)
:data-test "path-btn"}
i/pen]
[:li.tooltip.tooltip-right