Skip to content
Merged

Next #100

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c7d5135
github-actions[bot] Apr 9, 2024
549c442
new component
JulienChampagnol Apr 23, 2024
46d42e2
wip(ResultPanel component): fix auto import
JulienChampagnol Apr 24, 2024
9b6ff00
wip(ResultPanel component): refactor
JulienChampagnol Apr 25, 2024
3926892
rename component
JulienChampagnol Apr 29, 2024
406beca
@geode/opengeodeweb-back: 4.1.0-rc.2
JulienChampagnol Apr 29, 2024
7a5e621
code cleanup & refactor
JulienChampagnol Apr 29, 2024
c381d8e
feat(inspector): new component
JulienChampagnol Apr 29, 2024
a952e72
wip(tests): update
JulienChampagnol Apr 29, 2024
5c1ff2f
update dependencies
JulienChampagnol Apr 30, 2024
c8cc9ed
cleanup
JulienChampagnol Apr 30, 2024
75097c8
test resultPanel
JulienChampagnol Apr 30, 2024
c65fba2
wip(fix errors)
JulienChampagnol Apr 30, 2024
b8238bb
Apply prepare changes
JulienChampagnol Apr 30, 2024
535b3e9
fix tests
JulienChampagnol Apr 30, 2024
bda912a
update vuetify latest
JulienChampagnol May 2, 2024
418a390
cleanup imports
JulienChampagnol May 2, 2024
56b3a27
Merge pull request #94 from Geode-solutions/feat/inspector_refactor
JulienChampagnol May 2, 2024
59f0452
fix(tests): comment failing test
JulienChampagnol May 2, 2024
2659a8e
fix(tags): empty commit to trigger semantic
JulienChampagnol May 2, 2024
1361359
Merge pull request #95 from Geode-solutions/fix/tags
JulienChampagnol May 2, 2024
e6ec117
fix(actions): admin token for semantic
JulienChampagnol May 2, 2024
bf228b2
Merge branch 'next' into revert_branch
JulienChampagnol May 3, 2024
7cdd3f0
Merge pull request #98 from Geode-solutions/revert_branch
JulienChampagnol May 3, 2024
9501c80
Merge pull request #99 from Geode-solutions/fix/admin_token
JulienChampagnol May 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/CICD.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
uses: cycjimmy/semantic-release-action@v3
id: semantic
env:
GITHUB_TOKEN: ${{ github.token }}
GITHUB_TOKEN: ${{ secrets.TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Merge master -> next
if: github.ref == 'refs/heads/master'
Expand Down
9 changes: 4 additions & 5 deletions components/ExtensionSelector.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
:color="extension.is_saveable ? 'primary' : 'grey'"
hover
@click="
set_variables(output_geode_object, output_extension)
update_values(output_geode_object, output_extension)
"
:disabled="!extension.is_saveable"
>
Expand Down Expand Up @@ -123,13 +123,12 @@
toggle_loading()
}

function set_variables(output_geode_object, output_extension) {
function update_values(output_geode_object, output_extension) {
if (output_geode_object != "" && output_extension != "") {
const keys_values_object = {
emit("update_values", {
output_geode_object,
output_extension,
}
emit("update_values", keys_values_object)
})
emit("increment_step")
}
}
Expand Down
50 changes: 50 additions & 0 deletions components/Inspector/InspectionButton.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<template>
<div class="pa-0">
<v-btn
:loading="loading"
color="primary"
@click="get_inspection_results(props.input_geode_object, props.filename)"
>
Inspect
<template #loader>
<v-progress-circular indeterminate size="20" color="white" width="3" />
</template>
</v-btn>
<v-btn variant="text" @click="emit('decrement_step')">Cancel</v-btn>
</div>
</template>

<script setup>
import schemas from "@geode/opengeodeweb-back/schemas.json"
const schema = schemas.opengeodeweb_back.inspect_file

const emit = defineEmits([
"update_values",
"increment_step",
"decrement_step",
])
const props = defineProps({
input_geode_object: { type: String, required: true },
filename: { type: String, required: true },
})
const loading = ref(false)
const toggle_loading = useToggle(loading)

async function get_inspection_results(input_geode_object, filename) {
toggle_loading()
const params = { input_geode_object, filename }

await api_fetch(
{ schema, params },
{
response_function: (response) => {
emit("update_values", {
inspection_result: [response._data.inspection_result],
})
emit("increment_step")
},
},
)
toggle_loading()
}
</script>
55 changes: 55 additions & 0 deletions components/Inspector/ResultPanel.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<template>
<v-container class="pa-2">
<v-expansion-panels v-model="opened_panels" multiple elevation="5">
<v-expansion-panel
v-for="(result, index) in props.inspection_result"
:key="index"
class="card"
>
<v-expansion-panel-title>
<v-row align="center">
<v-col cols="auto">
<v-icon v-if="result.nb_issues == 0" color="primary" size="25">
mdi-check-circle-outline
</v-icon>
<v-icon v-else color="error" size="25"> mdi-close-circle </v-icon>
</v-col>
<v-col>
{{ result.title }}
</v-col>
</v-row>
</v-expansion-panel-title>
<v-expansion-panel-text>
<InspectorResultPanel
v-if="result.children"
:inspection_result="result.children"
/>
<v-container v-if="result.issues">
<v-col>
<v-row
v-for="(issue, index) in result.issues"
:key="index"
class="pa-0"
>
{{ issue }}
</v-row>
</v-col>
</v-container>
</v-expansion-panel-text>
</v-expansion-panel>
</v-expansion-panels>
</v-container>
</template>

<script setup>
const props = defineProps({
inspection_result: { type: Array, required: true },
})
const opened_panels = ref([])

onMounted(async () => {
opened_panels.value = props.inspection_result
.map((result, i) => (result.nb_issues > 0 ? i : -1))
.filter((index) => index !== -1)
})
</script>
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"version": "0.0.0-semantically-released",
"main": "./nuxt.config.js",
"dependencies": {
"@geode/opengeodeweb-back": "4.0.0",
"@geode/opengeodeweb-back": "4.1.0",
"@geode/opengeodeweb-viewer": "0.1.1",
"@kitware/vtk.js": "^30.3.1",
"@mdi/font": "^7.4.47",
Expand All @@ -52,7 +52,7 @@
"semver": "^7.6.0",
"vue-recaptcha": "^2.0.3",
"vue3-carousel": "^0.3.3",
"vuetify": "^3.5.14"
"vuetify": "^3.6.3"
},
"repository": {
"type": "git",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,20 @@ const vuetify = createVuetify({

describe("ErrorsSnackers.vue", async () => {
test(`Test delete error`, async () => {
const wrapper = await mount(ErrorsSnackers, {
global: {
plugins: [vuetify],
const wrapper = mount(
{
template: "<v-layout><ErrorsSnackers/></v-layout>",
},
})
{
props: {},
global: {
components: {
ErrorsSnackers,
},
plugins: [vuetify],
},
},
)

const errors_store = use_errors_store()
const error = {
Expand All @@ -30,7 +39,7 @@ describe("ErrorsSnackers.vue", async () => {
}
await errors_store.add_error(error)
expect(errors_store.errors.length).toBe(1)
const v_btn = wrapper.findComponent(components.VBtn)
const v_btn = await wrapper.findComponent(components.VBtn)
await v_btn.trigger("click")
expect(errors_store.errors.length).toBe(0)
})
Expand Down
9 changes: 4 additions & 5 deletions test/components/ExtensionSelector.nuxt.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ import ExtensionSelector from "@/components/ExtensionSelector.vue"

import schemas from "@geode/opengeodeweb-back/schemas.json"

const geode_objects_and_output_extensions =
schemas.opengeodeweb_back.geode_objects_and_output_extensions
const schema = schemas.opengeodeweb_back.geode_objects_and_output_extensions

const vuetify = createVuetify({
components,
Expand All @@ -24,8 +23,8 @@ describe("ExtensionSelector.vue", async () => {
const output_geode_object = "BRep"
const output_extension = "msh"

registerEndpoint(geode_objects_and_output_extensions.$id, {
method: geode_objects_and_output_extensions.methods[0],
registerEndpoint(schema.$id, {
method: schema.methods[0],
handler: () => ({
geode_objects_and_output_extensions: {
BRep: { msh: { is_saveable: true } },
Expand All @@ -44,7 +43,7 @@ describe("ExtensionSelector.vue", async () => {
// await v_card[1].trigger("click")
// expect(wrapper.emitted()).toHaveProperty("update_values")
// expect(wrapper.emitted().update_values).toHaveLength(1)
// expect(wrapper.emitted().update_values[0][0]).toEqual({
// expect(wrapper.emitted().update_values[0][0]).toStrictEqual({
// output_geode_object,
// output_extension,
// })
Expand Down
67 changes: 67 additions & 0 deletions test/components/Inspector/InspectionButon.nuxt.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// @vitest-environment nuxt

import { describe, expect, test } from "vitest"
import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
import { flushPromises } from "@vue/test-utils"

import { createVuetify } from "vuetify"
import * as components from "vuetify/components"
import * as directives from "vuetify/directives"

import InspectorInspectionButton from "@/components/Inspector/InspectionButton.vue"
import schemas from "@geode/opengeodeweb-back/schemas.json"
const schema = schemas.opengeodeweb_back.inspect_file

const vuetify = createVuetify({
components,
directives,
})

describe("Inspector/InspectionButton.vue", async () => {
test(`Test with issues`, async () => {
var inspection_result = {
title: "Brep inspection",
nb_issues: 3,
children: [
{
title: "Brep inspection",
nb_issues: 2,
issues: ["issue 1", "issue 2"],
},
{
title: "Brep inspection",
nb_issues: 1,
issues: ["issue 1"],
},
],
}

registerEndpoint(schema.$id, {
method: schema.methods[0],
handler: () => ({
inspection_result,
}),
})
const input_geode_object = "BRep"
const filename = "test.txt"

const wrapper = await mountSuspended(InspectorInspectionButton, {
global: {
plugins: [vuetify],
},
props: { input_geode_object, filename },
})

expect(wrapper.exists()).toBe(true)
const v_btn = await wrapper.findComponent(components.VBtn)
await v_btn.trigger("click")
await flushPromises()

expect(wrapper.emitted()).toHaveProperty("update_values")
expect(wrapper.emitted().update_values).toHaveLength(1)
expect(wrapper.emitted().update_values[0][0]).toStrictEqual({
inspection_result: [inspection_result],
})
expect(wrapper.emitted()).toHaveProperty("increment_step")
})
})
68 changes: 68 additions & 0 deletions test/components/Inspector/ResultPanel.nuxt.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// @vitest-environment nuxt

import { describe, expect, test } from "vitest"
import { mountSuspended } from "@nuxt/test-utils/runtime"

import { createVuetify } from "vuetify"
import * as components from "vuetify/components"
import * as directives from "vuetify/directives"

import InspectorResultPanel from "@/components/Inspector/ResultPanel.vue"

const vuetify = createVuetify({
components,
directives,
})

describe("Inspector/ResultPanel.vue", async () => {
test(`Test with issues`, async () => {
const inspection_result = [
{
title: "Brep inspection",
nb_issues: 26,
children: [],
},
]

const wrapper = await mountSuspended(InspectorResultPanel, {
global: {
plugins: [vuetify],
},
props: { inspection_result },
})

expect(wrapper.exists()).toBe(true)
expect(wrapper.componentVM.opened_panels._value).toStrictEqual([0])
expect(wrapper.componentVM.props.inspection_result).toStrictEqual(
inspection_result,
)

const child_result_panel_wrapper =
await wrapper.findComponent(InspectorResultPanel)
expect(child_result_panel_wrapper.exists()).toBe(true)
expect(
child_result_panel_wrapper.componentVM.props.inspection_result,
).toStrictEqual(inspection_result[0].children)
})

test(`Test without issues`, async () => {
const inspection_result = [
{
title: "Brep inspection",
nb_issues: 0,
},
]
const wrapper = await mountSuspended(InspectorResultPanel, {
global: {
plugins: [vuetify],
},
props: { inspection_result },
})

expect(wrapper.exists()).toBe(true)
expect(wrapper.componentVM.opened_panels._value).toStrictEqual([])
expect(wrapper.componentVM.props.inspection_result).toStrictEqual(
inspection_result,
)
})
})