fix(webapp): added option for slug (#8659)

This commit is contained in:
sebastian2357 2025-07-02 14:20:21 +02:00 committed by GitHub
parent e606b90ed2
commit a81ec214f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 55 additions and 176 deletions

View File

@ -3,8 +3,8 @@ import { defineStep } from '@badeball/cypress-cucumber-preprocessor'
defineStep('I should see my comment', () => { defineStep('I should see my comment', () => {
cy.get('article.comment-card p') cy.get('article.comment-card p')
.should('contain', 'Ocelot.social rocks') .should('contain', 'Ocelot.social rocks')
.get('.user-teaser span.slug') .get('.user-teaser span.name')
.should('contain', '@peter-pan') // specific enough .should('contain', 'Peter Pan') // specific enough
.get('.profile-avatar img') .get('.profile-avatar img')
.should('have.attr', 'src') .should('have.attr', 'src')
.and('contain', 'https://') // some url .and('contain', 'https://') // some url

View File

@ -56,6 +56,7 @@ describe('UserTeaser', () => {
withLinkToProfile = true, withLinkToProfile = true,
onTouchScreen = false, onTouchScreen = false,
withAvatar = true, withAvatar = true,
showSlug = true,
user = userTilda, user = userTilda,
withPopoverEnabled = true, withPopoverEnabled = true,
}) => { }) => {
@ -76,6 +77,7 @@ describe('UserTeaser', () => {
user, user,
linkToProfile: withLinkToProfile, linkToProfile: withLinkToProfile,
showAvatar: withAvatar, showAvatar: withAvatar,
showSlug: showSlug,
showPopover: withPopoverEnabled, showPopover: withPopoverEnabled,
}, },
stubs: { stubs: {

View File

@ -101,7 +101,7 @@ storiesOf('UserTeaser', module)
data: () => ({ data: () => ({
user, user,
}), }),
template: '<user-teaser :user="user" />', template: '<user-teaser :user="user" :show-slug="true" />',
})) }))
.add('with date', () => ({ .add('with date', () => ({
components: { UserTeaser }, components: { UserTeaser },
@ -109,7 +109,7 @@ storiesOf('UserTeaser', module)
data: () => ({ data: () => ({
user, user,
}), }),
template: '<user-teaser :user="user" :date-time="new Date()" />', template: '<user-teaser :user="user" :show-slug="true" :date-time="new Date()" />',
})) }))
.add('has edited something', () => ({ .add('has edited something', () => ({
components: { UserTeaser }, components: { UserTeaser },
@ -118,7 +118,7 @@ storiesOf('UserTeaser', module)
user, user,
}), }),
template: ` template: `
<user-teaser :user="user" :date-time="new Date()"> <user-teaser :user="user" :show-slug="true" :date-time="new Date()">
<template #dateTime> <template #dateTime>
- HEY! I'm edited - HEY! I'm edited
</template> </template>
@ -131,7 +131,7 @@ storiesOf('UserTeaser', module)
data: () => ({ data: () => ({
user: null, user: null,
}), }),
template: '<user-teaser :user="user" :date-time="new Date()" />', template: '<user-teaser :user="user" :show-slug="true" :date-time="new Date()" />',
})) }))
.add('with group and date', () => ({ .add('with group and date', () => ({
components: { UserTeaser }, components: { UserTeaser },
@ -140,7 +140,8 @@ storiesOf('UserTeaser', module)
user, user,
group, group,
}), }),
template: '<user-teaser :user="user" :group="group" :date-time="new Date()" />', template:
'<user-teaser :user="user" :show-slug="true" :group="group" :date-time="new Date()" />',
})) }))
.add('with group and date wide', () => ({ .add('with group and date wide', () => ({
components: { UserTeaser }, components: { UserTeaser },
@ -149,5 +150,6 @@ storiesOf('UserTeaser', module)
user, user,
group, group,
}), }),
template: '<user-teaser :user="user" :group="group" wide :date-time="new Date()" />', template:
'<user-teaser :user="user" :show-slug="true" :group="group" wide :date-time="new Date()" />',
})) }))

View File

@ -13,6 +13,7 @@
:group="group" :group="group"
:wide="wide" :wide="wide"
:show-avatar="showAvatar" :show-avatar="showAvatar"
:show-slug="showSlug"
:date-time="dateTime" :date-time="dateTime"
:show-popover="showPopover" :show-popover="showPopover"
:injected-text="injectedText" :injected-text="injectedText"
@ -42,6 +43,7 @@ export default {
group: { type: Object, default: null }, group: { type: Object, default: null },
wide: { type: Boolean, default: false }, wide: { type: Boolean, default: false },
showAvatar: { type: Boolean, default: true }, showAvatar: { type: Boolean, default: true },
showSlug: { type: Boolean, default: false },
dateTime: { type: [Date, String], default: null }, dateTime: { type: [Date, String], default: null },
showPopover: { type: Boolean, default: true }, showPopover: { type: Boolean, default: true },
injectedText: { type: String, default: null }, injectedText: { type: String, default: null },

View File

@ -23,7 +23,7 @@
@open-menu="loadPopover(openMenu)" @open-menu="loadPopover(openMenu)"
@close-menu="closeMenu(false)" @close-menu="closeMenu(false)"
> >
<span class="slug">{{ userSlug }}</span> <span v-if="showSlug" class="slug">{{ userSlug }}</span>
<span class="name">{{ userName }}</span> <span class="name">{{ userName }}</span>
</user-teaser-helper> </user-teaser-helper>
<span v-if="wide">&nbsp;</span> <span v-if="wide">&nbsp;</span>
@ -83,6 +83,7 @@ export default {
group: { type: Object, default: null }, group: { type: Object, default: null },
wide: { type: Boolean, default: false }, wide: { type: Boolean, default: false },
showAvatar: { type: Boolean, default: true }, showAvatar: { type: Boolean, default: true },
showSlug: { type: Boolean, default: false },
dateTime: { type: [Date, String], default: null }, dateTime: { type: [Date, String], default: null },
showPopover: { type: Boolean, default: true }, showPopover: { type: Boolean, default: true },
injectedText: { type: String, default: null }, injectedText: { type: String, default: null },

View File

@ -62,7 +62,7 @@ describe('FiledReportsTable.vue', () => {
describe('FiledReport', () => { describe('FiledReport', () => {
it('renders the reporting user', () => { it('renders the reporting user', () => {
const userSlug = wrapper.find('[data-test="filing-user"]') const userSlug = wrapper.find('[data-test="filing-user"]')
expect(userSlug.text()).toContain('@community-moderator') expect(userSlug.text()).toContain('Community moderator')
}) })
it('renders the reported date', () => { it('renders the reported date', () => {

View File

@ -109,7 +109,7 @@ describe('ReportRow', () => {
it('renders the moderator who reviewed the resource', () => { it('renders the moderator who reviewed the resource', () => {
const username = wrapper.find('[data-test="report-reviewer"]') const username = wrapper.find('[data-test="report-reviewer"]')
expect(username.text()).toContain('@moderator') expect(username.text()).toContain('Moderator')
}) })
}) })
}) })
@ -132,7 +132,7 @@ describe('ReportRow', () => {
it('renders the author', () => { it('renders the author', () => {
const userSlug = wrapper.find('[data-test="report-author"]') const userSlug = wrapper.find('[data-test="report-author"]')
expect(userSlug.text()).toContain('@louie') expect(userSlug.text()).toContain('Louie')
}) })
}) })
@ -154,7 +154,7 @@ describe('ReportRow', () => {
it('renders the author', () => { it('renders the author', () => {
const username = wrapper.find('[data-test="report-author"]') const username = wrapper.find('[data-test="report-author"]')
expect(username.text()).toContain('@dagobert') expect(username.text()).toContain('Dagobert')
}) })
}) })
@ -171,7 +171,7 @@ describe('ReportRow', () => {
it('renders a link to the user profile', () => { it('renders a link to the user profile', () => {
const userLink = wrapper.find('[data-test="report-content"]') const userLink = wrapper.find('[data-test="report-content"]')
expect(userLink.text()).toContain('@abusive-user') expect(userLink.text()).toContain('Abusive user')
}) })
}) })
}) })

View File

@ -87,8 +87,8 @@ describe('SearchableInput.vue', () => {
it("pushes to user's profile", async () => { it("pushes to user's profile", async () => {
select.element.value = 'Bob' select.element.value = 'Bob'
select.trigger('input') select.trigger('input')
const users = wrapper.findAll('.slug') const users = wrapper.findAll('.name')
const bob = users.filter((item) => item.text().match(/@bob-der-baumeister/)) const bob = users.filter((item) => item.text().match(/Bob der Baumeister/))
bob.trigger('click') bob.trigger('click')
await Vue.nextTick() await Vue.nextTick()
expect(mocks.$router.push).toHaveBeenCalledWith({ expect(mocks.$router.push).toHaveBeenCalledWith({

View File

@ -561,11 +561,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -646,11 +642,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -731,11 +723,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -816,11 +804,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"
@ -2452,11 +2436,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -2537,11 +2517,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -2622,11 +2598,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -2707,11 +2679,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a close
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"
@ -3446,11 +3414,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -3531,11 +3495,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -3616,11 +3576,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -3701,11 +3657,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"
@ -4285,11 +4237,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -4370,11 +4318,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -4455,11 +4399,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -4540,11 +4480,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"
@ -5122,11 +5058,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -5207,11 +5139,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -5292,11 +5220,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -5377,11 +5301,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"
@ -6028,11 +5948,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -6113,11 +6029,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -6198,11 +6110,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -6283,11 +6191,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a curre
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"
@ -7069,11 +6973,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -7154,11 +7054,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -7239,11 +7135,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -7324,11 +7216,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"
@ -8063,11 +7951,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@peter-lustig
</span>
<span <span
class="name" class="name"
@ -8148,11 +8032,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@jenny-rostock
</span>
<span <span
class="name" class="name"
@ -8233,11 +8113,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@bob-der-baumeister
</span>
<span <span
class="name" class="name"
@ -8318,11 +8194,7 @@ exports[`GroupProfileSlug given a puplic group "yoga-practice" given a hidde
<nuxt-link-stub <nuxt-link-stub
to="[object Object]" to="[object Object]"
> >
<span <!---->
class="slug"
>
@huey
</span>
<span <span
class="name" class="name"