Skip to content

Commit d82cd77

Browse files
committed
chore: bump git permissions-per-group to vue 3.4
Vue 3.4 announcement: https://blog.vuejs.org/posts/vue-3-4 This allows us to use `defineModel` macro. This remove an eslint-disable but introduce a new one 😒 since eslint needs to be updated upstream to support defineModel. See following issue for details: vuejs/eslint-plugin-vue#2130 Jest doesn't know defineModel either, therefore we take the opportunity to switch to vitest. One bird two stones 😅 See documentation about defineModel: https://vuejs.org/guide/components/v-model.html No functional changes: in project » admin » permissions per group. Part of request #31168: Migration Vue2 => Vue3 Change-Id: Idbd1a1519460391cc4438a951865415745ff2dd5
1 parent 69bdad1 commit d82cd77

12 files changed

+96
-137
lines changed

plugins/git/scripts/permissions-per-group/jest.config.js

-33
This file was deleted.

plugins/git/scripts/permissions-per-group/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@
1010
"@tuleap/fetch-result": "workspace:*",
1111
"@tuleap/vue3-permissions-per-group-badge": "workspace:*",
1212
"@tuleap/vue3-gettext-init": "workspace:*",
13-
"vue": "3.3.4",
13+
"vue": "3.4.5",
1414
"vue3-gettext": "^2.4.0"
1515
},
1616
"devDependencies": {
1717
"@tuleap/build-system-configurator": "workspace:*",
1818
"@tuleap/po-gettext-plugin": "workspace:*",
19-
"@vitejs/plugin-vue": "^4.2.3",
19+
"@vitejs/plugin-vue": "^5.0.2",
2020
"@vue/test-utils": "^2.2.10",
2121
"neverthrow": "6.0.0"
2222
},
2323
"scripts": {
2424
"typecheck": "vue-tsc --noEmit",
2525
"build": "vite build",
2626
"watch": "vite build --watch --mode development --minify false",
27-
"test": "jest"
27+
"test": "vitest"
2828
}
2929
}

plugins/git/scripts/permissions-per-group/pnpm-lock.yaml

+75-80
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/git/scripts/permissions-per-group/src/GitInlineFilter.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* along with Tuleap. If not, see http://www.gnu.org/licenses/.
1818
*/
1919

20+
import { describe, it, expect } from "vitest";
2021
import { shallowMount } from "@vue/test-utils";
2122
import GitInlineFilter from "./GitInlineFilter.vue";
2223
import { createGettext } from "vue3-gettext";
@@ -31,7 +32,7 @@ describe("GitInlineFilter", () => {
3132
plugins: [createGettext({ silent: true })],
3233
},
3334
});
34-
wrapper.find("[data-test=git-inline-filter-input]").trigger("keyup");
35+
wrapper.find("[data-test=git-inline-filter-input]").trigger("input");
3536
expect(wrapper.emitted("update:modelValue")).toBeTruthy();
3637
});
3738
});

plugins/git/scripts/permissions-per-group/src/GitInlineFilter.vue

+4-15
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
class="tlp-search"
2727
autocomplete="off"
2828
v-bind:placeholder="placeholder"
29-
v-bind:value="modelValue"
30-
v-on:keyup="search"
29+
v-model="model"
3130
data-test="git-inline-filter-input"
3231
/>
3332
</div>
@@ -38,21 +37,11 @@
3837
import { computed } from "vue";
3938
import { useGettext } from "vue3-gettext";
4039

41-
// modelValue in camel case is needed for v-model until vue 3.4 (replaced by defineModel)
42-
// eslint-disable-next-line vue/prop-name-casing
43-
defineProps<{ modelValue?: string }>();
40+
// eslint doesn't know yet defineModel: https://github.com/vuejs/eslint-plugin-vue/issues/2130
41+
// eslint-disable-next-line no-undef
42+
const model = defineModel();
4443

4544
const { $gettext } = useGettext();
4645

4746
const placeholder = computed(() => $gettext("Repository name"));
48-
49-
const emit = defineEmits<{
50-
"update:modelValue": [value: string];
51-
}>();
52-
53-
function search(event: Event): void {
54-
if (event.target instanceof HTMLInputElement) {
55-
emit("update:modelValue", event.target.value);
56-
}
57-
}
5847
</script>

0 commit comments

Comments
 (0)