Loading client/src/components/History/Content/Collection/CollectionProgress.test.js +20 −7 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ describe("CollectionProgress", () => { localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("3"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("3"); }); it("should correctly display states", async () => { Loading @@ -31,9 +31,9 @@ describe("CollectionProgress", () => { localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("3"); expect(wrapper.find(".progress").find(".bg-success").text()).toBe("1"); expect(wrapper.find(".progress").find(".bg-danger").text()).toBe("1"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("3"); expect(wrapper.find(".progress").find(".bg-success").attributes("aria-valuenow")).toBe("1"); expect(wrapper.find(".progress").find(".bg-danger").attributes("aria-valuenow")).toBe("1"); }); it("should update as dataset states change", async () => { Loading @@ -46,13 +46,26 @@ describe("CollectionProgress", () => { localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("3"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("3"); dsc["job_state_summary"]["ok"] = 2; dsc["job_state_summary"]["running"] = 1; jobStateSummary = new JobStateSummary(dsc); await wrapper.setProps({ summary: jobStateSummary }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("1"); expect(wrapper.find(".progress").find(".bg-success").text()).toBe("2"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("1"); expect(wrapper.find(".progress").find(".bg-success").attributes("aria-valuenow")).toBe("2"); }); it("should be visible when all jobs are queued", async () => { const dsc = { job_state_summary: { all_jobs: 3, queued: 3 }, populated_state: {} }; const jobStateSummary = new JobStateSummary(dsc); wrapper = mount(CollectionProgress, { propsData: { summary: jobStateSummary, }, localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-secondary").attributes("aria-valuenow")).toBe("3"); }); }); client/src/components/History/Content/Collection/CollectionProgress.vue +9 −5 Original line number Diff line number Diff line Loading @@ -3,11 +3,15 @@ at components/JobStates/CollectionJobStates but it relies on the backbone data model, so probably has to go eventually.--> <template> <div class="collection-progress"> <b-progress v-if="maxJobs && runningJobs" :max="maxJobs" show-value> <b-progress-bar v-if="errorJobs" :value="errorJobs" variant="danger" /> <b-progress-bar v-if="okJobs" :value="okJobs" variant="success" /> <b-progress-bar v-if="runningJobs" :value="runningJobs" variant="warning" /> <b-progress-bar v-if="waitingJobs" :value="waitingJobs" variant="secondary" /> <b-progress v-if="maxJobs != okJobs + errorJobs" :max="maxJobs"> <b-progress-bar v-if="errorJobs" :value="errorJobs" variant="danger" v-b-tooltip.hover="errorJobs" /> <b-progress-bar v-if="okJobs" :value="okJobs" variant="success" v-b-tooltip.hover="okJobs" /> <b-progress-bar v-if="runningJobs" :value="runningJobs" variant="warning" v-b-tooltip.hover="runningJobs" /> <b-progress-bar v-if="waitingJobs" :value="waitingJobs" variant="secondary" v-b-tooltip.hover="waitingJobs" /> </b-progress> </div> </template> Loading Loading
client/src/components/History/Content/Collection/CollectionProgress.test.js +20 −7 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ describe("CollectionProgress", () => { localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("3"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("3"); }); it("should correctly display states", async () => { Loading @@ -31,9 +31,9 @@ describe("CollectionProgress", () => { localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("3"); expect(wrapper.find(".progress").find(".bg-success").text()).toBe("1"); expect(wrapper.find(".progress").find(".bg-danger").text()).toBe("1"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("3"); expect(wrapper.find(".progress").find(".bg-success").attributes("aria-valuenow")).toBe("1"); expect(wrapper.find(".progress").find(".bg-danger").attributes("aria-valuenow")).toBe("1"); }); it("should update as dataset states change", async () => { Loading @@ -46,13 +46,26 @@ describe("CollectionProgress", () => { localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("3"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("3"); dsc["job_state_summary"]["ok"] = 2; dsc["job_state_summary"]["running"] = 1; jobStateSummary = new JobStateSummary(dsc); await wrapper.setProps({ summary: jobStateSummary }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-warning").text()).toBe("1"); expect(wrapper.find(".progress").find(".bg-success").text()).toBe("2"); expect(wrapper.find(".progress").find(".bg-warning").attributes("aria-valuenow")).toBe("1"); expect(wrapper.find(".progress").find(".bg-success").attributes("aria-valuenow")).toBe("2"); }); it("should be visible when all jobs are queued", async () => { const dsc = { job_state_summary: { all_jobs: 3, queued: 3 }, populated_state: {} }; const jobStateSummary = new JobStateSummary(dsc); wrapper = mount(CollectionProgress, { propsData: { summary: jobStateSummary, }, localVue, }); await wrapper.vm.$nextTick(); expect(wrapper.find(".progress").find(".bg-secondary").attributes("aria-valuenow")).toBe("3"); }); });
client/src/components/History/Content/Collection/CollectionProgress.vue +9 −5 Original line number Diff line number Diff line Loading @@ -3,11 +3,15 @@ at components/JobStates/CollectionJobStates but it relies on the backbone data model, so probably has to go eventually.--> <template> <div class="collection-progress"> <b-progress v-if="maxJobs && runningJobs" :max="maxJobs" show-value> <b-progress-bar v-if="errorJobs" :value="errorJobs" variant="danger" /> <b-progress-bar v-if="okJobs" :value="okJobs" variant="success" /> <b-progress-bar v-if="runningJobs" :value="runningJobs" variant="warning" /> <b-progress-bar v-if="waitingJobs" :value="waitingJobs" variant="secondary" /> <b-progress v-if="maxJobs != okJobs + errorJobs" :max="maxJobs"> <b-progress-bar v-if="errorJobs" :value="errorJobs" variant="danger" v-b-tooltip.hover="errorJobs" /> <b-progress-bar v-if="okJobs" :value="okJobs" variant="success" v-b-tooltip.hover="okJobs" /> <b-progress-bar v-if="runningJobs" :value="runningJobs" variant="warning" v-b-tooltip.hover="runningJobs" /> <b-progress-bar v-if="waitingJobs" :value="waitingJobs" variant="secondary" v-b-tooltip.hover="waitingJobs" /> </b-progress> </div> </template> Loading