mirror of
https://github.com/nextcloud/spreed.git
synced 2025-12-18 05:20:50 +01:00
feat: refactor sharedItemsStore to composition api store
Signed-off-by: Dorra Jaouad <dorra.jaoued7@gmail.com> [skip ci]
This commit is contained in:
parent
305a84c495
commit
30a1dc52d4
2 changed files with 20 additions and 35 deletions
|
|
@ -58,23 +58,6 @@ describe('sharedItemsStore', () => {
|
|||
expect(sharedItemsStore.sharedItems(token)).toEqual({ media: { 1: message } })
|
||||
})
|
||||
|
||||
it('does not overwrite store with overview response', async () => {
|
||||
// Arrange
|
||||
const message = {
|
||||
id: 100,
|
||||
token,
|
||||
message: '{file}',
|
||||
messageParameters: { file: { mimetype: 'image/jpeg' } },
|
||||
}
|
||||
sharedItemsStore.addSharedItemFromMessage(token, message)
|
||||
|
||||
// Act
|
||||
sharedItemsStore.addSharedItemsFromOverview(token, payloadOverview)
|
||||
|
||||
// Assert
|
||||
expect(sharedItemsStore.sharedItems(token).media).toEqual({ 100: message })
|
||||
})
|
||||
|
||||
it('processes an array of messages and add each unique item only once', () => {
|
||||
// Arrange
|
||||
const message1 = {
|
||||
|
|
@ -103,10 +86,10 @@ describe('sharedItemsStore', () => {
|
|||
// Arrange
|
||||
const response = generateOCSResponse({ payload: payloadOverview })
|
||||
getSharedItemsOverview.mockResolvedValue(response)
|
||||
await sharedItemsStore.getSharedItemsOverview(token)
|
||||
await sharedItemsStore.fetchSharedItemsOverview(token)
|
||||
|
||||
// Act
|
||||
await sharedItemsStore.getSharedItemsOverview(token)
|
||||
await sharedItemsStore.fetchSharedItemsOverview(token)
|
||||
|
||||
// Assert
|
||||
expect(getSharedItemsOverview).toHaveBeenCalledTimes(1)
|
||||
|
|
@ -120,7 +103,7 @@ describe('sharedItemsStore', () => {
|
|||
getSharedItemsOverview.mockResolvedValueOnce(response)
|
||||
|
||||
// Act: load sharedItemsOverview from server
|
||||
await sharedItemsStore.getSharedItemsOverview(token)
|
||||
await sharedItemsStore.fetchSharedItemsOverview(token)
|
||||
|
||||
// Assert
|
||||
expect(getSharedItemsOverview).toHaveBeenCalledWith(token, limitOverview)
|
||||
|
|
@ -141,10 +124,10 @@ describe('sharedItemsStore', () => {
|
|||
getSharedItemsOverview.mockResolvedValueOnce(responseOverview)
|
||||
const response = generateOCSResponse({ payload: { 1: message } })
|
||||
getSharedItems.mockResolvedValueOnce(response)
|
||||
await sharedItemsStore.getSharedItemsOverview(token)
|
||||
await sharedItemsStore.fetchSharedItemsOverview(token)
|
||||
|
||||
// Act: load sharedItemsOverview from server
|
||||
await sharedItemsStore.getSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
await sharedItemsStore.fetchSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
|
||||
// Assert
|
||||
expect(getSharedItems).toHaveBeenCalledWith(token, SHARED_ITEM.TYPES.MEDIA, 100, limitGeneral)
|
||||
|
|
@ -157,10 +140,10 @@ describe('sharedItemsStore', () => {
|
|||
getSharedItemsOverview.mockResolvedValueOnce(responseOverview)
|
||||
const response = generateOCSResponse({ payload: [] })
|
||||
getSharedItems.mockResolvedValueOnce(response)
|
||||
await sharedItemsStore.getSharedItemsOverview(token)
|
||||
await sharedItemsStore.fetchSharedItemsOverview(token)
|
||||
|
||||
// Act: load sharedItemsOverview from server
|
||||
const output = await sharedItemsStore.getSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
const output = await sharedItemsStore.fetchSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
|
||||
// Assert
|
||||
expect(getSharedItems).toHaveBeenCalledWith(token, SHARED_ITEM.TYPES.MEDIA, 100, limitGeneral)
|
||||
|
|
@ -180,7 +163,7 @@ describe('sharedItemsStore', () => {
|
|||
getSharedItemsOverview.mockRejectedValueOnce(response)
|
||||
|
||||
// Act
|
||||
await sharedItemsStore.getSharedItemsOverview(token)
|
||||
await sharedItemsStore.fetchSharedItemsOverview(token)
|
||||
|
||||
// Assert: store hasn't changed
|
||||
expect(sharedItemsStore.sharedItems(token)).toEqual({})
|
||||
|
|
@ -188,7 +171,7 @@ describe('sharedItemsStore', () => {
|
|||
|
||||
it('skips server request without initially loaded overview', async () => {
|
||||
// Act
|
||||
await sharedItemsStore.getSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
await sharedItemsStore.fetchSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
|
||||
// Assert: store hasn't changed
|
||||
expect(getSharedItems).not.toHaveBeenCalled()
|
||||
|
|
@ -199,13 +182,13 @@ describe('sharedItemsStore', () => {
|
|||
// Arrange
|
||||
const responseOverview = generateOCSResponse({ payload: payloadOverview })
|
||||
getSharedItemsOverview.mockResolvedValueOnce(responseOverview)
|
||||
await sharedItemsStore.getSharedItemsOverview(token)
|
||||
await sharedItemsStore.fetchSharedItemsOverview(token)
|
||||
|
||||
const response = generateOCSErrorResponse({ status: 404, payload: [] })
|
||||
getSharedItems.mockRejectedValueOnce(response)
|
||||
|
||||
// Act
|
||||
await sharedItemsStore.getSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
await sharedItemsStore.fetchSharedItems(token, SHARED_ITEM.TYPES.MEDIA)
|
||||
|
||||
// Assert: store hasn't changed
|
||||
expect(sharedItemsStore.sharedItems(token)).toEqual(result)
|
||||
|
|
|
|||
|
|
@ -32,9 +32,6 @@ import { getItemTypeFromMessage } from '../utils/getItemTypeFromMessage.ts'
|
|||
|
||||
/**
|
||||
* Store for shared items shown in RightSidebar
|
||||
*
|
||||
* @param {string} id store name
|
||||
* @param {State} options.state store state structure
|
||||
*/
|
||||
export const useSharedItemsStore = defineStore('sharedItems', {
|
||||
state: () => ({
|
||||
|
|
@ -47,10 +44,10 @@ export const useSharedItemsStore = defineStore('sharedItems', {
|
|||
if (!state.sharedItemsPool[token]) {
|
||||
Vue.set(state.sharedItemsPool, token, {})
|
||||
}
|
||||
}
|
||||
|
||||
return state.sharedItemsPool[token]
|
||||
},
|
||||
},
|
||||
overviewLoaded[token] = true
|
||||
}
|
||||
|
||||
actions: {
|
||||
checkForExistence(token, type) {
|
||||
|
|
@ -181,7 +178,12 @@ export const useSharedItemsStore = defineStore('sharedItems', {
|
|||
console.error(error)
|
||||
return { hasMoreItems: false, messages: [] }
|
||||
}
|
||||
},
|
||||
return { hasMoreItems: messages.length >= limit, messages }
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
return { hasMoreItems: false, messages: [] }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Token} token conversation token
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue