|
70 | 70 | end
|
71 | 71 | end
|
72 | 72 |
|
73 |
| - context "by version in project" do |
| 73 | + context "when filtering version" do |
74 | 74 | shared_let(:other_project) { create(:project) }
|
75 |
| - shared_let(:inaccessible_version) { create(:version, project: other_project) } |
76 |
| - shared_let(:shared_version) { create(:version, project: other_project, sharing: "system") } |
| 75 | + shared_let(:inaccessible_version) { create(:version, name: "Inaccessible Version", project: other_project) } |
| 76 | + shared_let(:shared_version) { create(:version, name: "Shared Version", project: other_project, sharing: "system") } |
77 | 77 |
|
78 |
| - let(:version) { create(:version, project:) } |
79 |
| - let(:work_package_with_version) do |
| 78 | + let!(:version) { create(:version, project:) } |
| 79 | + let!(:work_package_with_version) do |
80 | 80 | create(:work_package, project:, subject: "With version", version:)
|
81 | 81 | end
|
82 |
| - let(:work_package_without_version) { create(:work_package, subject: "Without version", project:) } |
| 82 | + let!(:work_package_without_version) { create(:work_package, subject: "Without version", project:) } |
83 | 83 |
|
84 | 84 | before do
|
85 |
| - work_package_with_version |
86 |
| - work_package_without_version |
87 |
| - |
88 | 85 | wp_table.visit!
|
89 |
| - end |
90 | 86 |
|
91 |
| - it "allows filtering, saving, retrieving and altering the saved filter" do |
92 | 87 | filters.open
|
93 |
| - |
94 | 88 | # Expect filters to be grouped by project name
|
95 | 89 | filters.add_filter("Version")
|
| 90 | + end |
96 | 91 |
|
97 |
| - expect_ng_option( |
98 |
| - page.find_by_id("values-version"), |
99 |
| - version, |
100 |
| - grouping: project.name, |
101 |
| - results_selector: "body" |
102 |
| - ) |
| 92 | + context "in a project" do |
| 93 | + let(:wp_table) { Pages::WorkPackagesTable.new(project) } |
103 | 94 |
|
104 |
| - expect_ng_option( |
105 |
| - page.find_by_id("values-version"), |
106 |
| - shared_version, |
107 |
| - grouping: other_project.name, |
108 |
| - results_selector: "body" |
109 |
| - ) |
| 95 | + it "allows filtering, saving, retrieving and altering the saved filter" do |
| 96 | + expect_ng_option( |
| 97 | + page.find_by_id("values-version"), |
| 98 | + version, |
| 99 | + grouping: project.name, |
| 100 | + results_selector: "body" |
| 101 | + ) |
110 | 102 |
|
111 |
| - expect_no_ng_option( |
112 |
| - page.find_by_id("values-version"), |
113 |
| - inaccessible_version, |
114 |
| - results_selector: "body" |
115 |
| - ) |
| 103 | + expect_ng_option( |
| 104 | + page.find_by_id("values-version"), |
| 105 | + shared_version, |
| 106 | + grouping: other_project.name, |
| 107 | + results_selector: "body" |
| 108 | + ) |
116 | 109 |
|
117 |
| - filters.remove_filter "version" |
| 110 | + expect_no_ng_option( |
| 111 | + page.find_by_id("values-version"), |
| 112 | + inaccessible_version, |
| 113 | + results_selector: "body" |
| 114 | + ) |
118 | 115 |
|
119 |
| - filters.add_filter_by("Version", "is (OR)", version.name) |
| 116 | + filters.remove_filter "version" |
120 | 117 |
|
121 |
| - loading_indicator_saveguard |
122 |
| - wp_table.expect_work_package_listed work_package_with_version |
123 |
| - wp_table.ensure_work_package_not_listed! work_package_without_version |
| 118 | + filters.add_filter_by("Version", "is (OR)", version.name) |
124 | 119 |
|
125 |
| - wp_table.save_as("Some query name") |
| 120 | + loading_indicator_saveguard |
| 121 | + wp_table.expect_work_package_listed work_package_with_version |
| 122 | + wp_table.ensure_work_package_not_listed! work_package_without_version |
126 | 123 |
|
127 |
| - filters.remove_filter "version" |
| 124 | + wp_table.save_as("Some query name") |
128 | 125 |
|
129 |
| - loading_indicator_saveguard |
130 |
| - wp_table.expect_work_package_listed work_package_with_version, work_package_without_version |
| 126 | + filters.remove_filter "version" |
131 | 127 |
|
132 |
| - last_query = Query.last |
| 128 | + loading_indicator_saveguard |
| 129 | + wp_table.expect_work_package_listed work_package_with_version, work_package_without_version |
133 | 130 |
|
134 |
| - wp_table.visit_query(last_query) |
| 131 | + last_query = Query.last |
135 | 132 |
|
136 |
| - loading_indicator_saveguard |
137 |
| - wp_table.expect_work_package_listed work_package_with_version |
138 |
| - wp_table.ensure_work_package_not_listed! work_package_without_version |
| 133 | + wp_table.visit_query(last_query) |
139 | 134 |
|
140 |
| - filters.open |
| 135 | + loading_indicator_saveguard |
| 136 | + wp_table.expect_work_package_listed work_package_with_version |
| 137 | + wp_table.ensure_work_package_not_listed! work_package_without_version |
141 | 138 |
|
142 |
| - filters.expect_filter_by("Version", "is (OR)", version.name) |
| 139 | + filters.open |
143 | 140 |
|
144 |
| - filters.set_operator "Version", "is not" |
| 141 | + filters.expect_filter_by("Version", "is (OR)", version.name) |
145 | 142 |
|
146 |
| - loading_indicator_saveguard |
147 |
| - wp_table.expect_work_package_listed work_package_without_version |
148 |
| - wp_table.ensure_work_package_not_listed! work_package_with_version |
| 143 | + filters.set_operator "Version", "is not" |
| 144 | + |
| 145 | + loading_indicator_saveguard |
| 146 | + wp_table.expect_work_package_listed work_package_without_version |
| 147 | + wp_table.ensure_work_package_not_listed! work_package_with_version |
| 148 | + end |
| 149 | + end |
| 150 | + |
| 151 | + context "in the global page" do |
| 152 | + shared_let(:user) { create(:user, preferences: { time_zone: "Etc/UTC" }) } |
| 153 | + shared_let(:project) { create(:project, members: { user => role }) } |
| 154 | + let(:wp_table) { Pages::WorkPackagesTable.new } |
| 155 | + |
| 156 | + it "allows filtering, saving, retrieving and altering the saved filter" do |
| 157 | + expect_ng_option( |
| 158 | + page.find_by_id("values-version"), |
| 159 | + version, |
| 160 | + grouping: project.name, |
| 161 | + results_selector: "body" |
| 162 | + ) |
| 163 | + |
| 164 | + expect_ng_option( |
| 165 | + page.find_by_id("values-version"), |
| 166 | + shared_version, |
| 167 | + grouping: "Project N/A", |
| 168 | + results_selector: "body" |
| 169 | + ) |
| 170 | + |
| 171 | + expect_no_ng_option( |
| 172 | + page.find_by_id("values-version"), |
| 173 | + inaccessible_version, |
| 174 | + results_selector: "body" |
| 175 | + ) |
| 176 | + end |
149 | 177 | end
|
150 | 178 | end
|
151 | 179 |
|
|
0 commit comments