mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-19 01:35:18 -04:00
refactor: remove history page
This needs to be done since the backend does not include code for the history page anymore. This will be replaced with the explore page in the near future anyway. Co-authored-by: Philip Molares <philip.molares@udo.edu> Signed-off-by: Philip Molares <philip.molares@udo.edu> Signed-off-by: Erik Michelson <github@erik.michelson.eu>
This commit is contained in:
parent
c0ce00b3f9
commit
d67e44f540
75 changed files with 76 additions and 2727 deletions
|
@ -1,206 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
import type { HistoryEntry } from '../../src/api/history/types'
|
||||
|
||||
describe('History', () => {
|
||||
describe('History Mode', () => {
|
||||
beforeEach(() => {
|
||||
cy.visitHistory()
|
||||
})
|
||||
|
||||
it('Cards', () => {
|
||||
cy.getByCypressId('history-card').should('be.visible')
|
||||
})
|
||||
|
||||
it('Table', () => {
|
||||
cy.getByCypressId('history-mode-table').click()
|
||||
cy.getByCypressId('history-table').should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
describe('entry title', () => {
|
||||
describe('is as given when not empty', () => {
|
||||
beforeEach(() => {
|
||||
cy.clearLocalStorage('history')
|
||||
cy.intercept('GET', '/api/private/me/history', {
|
||||
body: [
|
||||
{
|
||||
identifier: 'cypress',
|
||||
title: 'Features',
|
||||
lastVisitedAt: '2020-05-16T22:26:56.547Z',
|
||||
pinStatus: false,
|
||||
tags: []
|
||||
} as HistoryEntry
|
||||
]
|
||||
})
|
||||
cy.visitHistory()
|
||||
})
|
||||
|
||||
it('in table view', () => {
|
||||
cy.getByCypressId('history-mode-table').click()
|
||||
cy.getByCypressId('history-table').should('be.visible')
|
||||
cy.getByCypressId('history-entry-title').contains('Features')
|
||||
})
|
||||
|
||||
it('in cards view', () => {
|
||||
cy.getByCypressId('history-entry-title').contains('Features')
|
||||
})
|
||||
})
|
||||
describe('is untitled when not empty', () => {
|
||||
beforeEach(() => {
|
||||
cy.clearLocalStorage('history')
|
||||
cy.intercept('GET', '/api/private/me/history', {
|
||||
body: [
|
||||
{
|
||||
identifier: 'cypress-no-title',
|
||||
title: '',
|
||||
lastVisitedAt: '2020-05-16T22:26:56.547Z',
|
||||
pinStatus: false,
|
||||
tags: []
|
||||
} as HistoryEntry
|
||||
]
|
||||
})
|
||||
cy.visitHistory()
|
||||
})
|
||||
|
||||
it('in table view', () => {
|
||||
cy.getByCypressId('history-mode-table').click()
|
||||
cy.getByCypressId('history-table').should('be.visible')
|
||||
cy.getByCypressId('history-entry-title').contains('Untitled')
|
||||
})
|
||||
|
||||
it('in cards view', () => {
|
||||
cy.getByCypressId('history-entry-title').contains('Untitled')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('Pinning', () => {
|
||||
beforeEach(() => {
|
||||
cy.visitHistory()
|
||||
})
|
||||
|
||||
describe('working', () => {
|
||||
beforeEach(() => {
|
||||
cy.intercept('PUT', '/api/private/me/history/features', (req) => {
|
||||
req.reply(200, req.body)
|
||||
})
|
||||
})
|
||||
|
||||
it('Cards', () => {
|
||||
cy.getByCypressId('history-card').should('be.visible')
|
||||
cy.get('[data-cypress-card-title=Features]')
|
||||
.findByCypressId('history-entry-pin-button')
|
||||
.should('have.attr', 'data-cypress-pinned', 'true')
|
||||
.click()
|
||||
cy.get('[data-cypress-card-title=Features]')
|
||||
.findByCypressId('history-entry-pin-button')
|
||||
.should('have.attr', 'data-cypress-pinned', 'false')
|
||||
})
|
||||
|
||||
it('Table', () => {
|
||||
cy.getByCypressId('history-mode-table').click()
|
||||
cy.get('[data-cypress-entry-title=Features]')
|
||||
.findByCypressId('history-entry-pin-button')
|
||||
.should('have.attr', 'data-cypress-pinned', 'true')
|
||||
.click()
|
||||
cy.get('[data-cypress-entry-title=Features]')
|
||||
.findByCypressId('history-entry-pin-button')
|
||||
.should('have.attr', 'data-cypress-pinned', 'false')
|
||||
})
|
||||
})
|
||||
|
||||
describe('failing', () => {
|
||||
beforeEach(() => {
|
||||
cy.intercept('PUT', '/api/private/me/history/features', {
|
||||
statusCode: 401
|
||||
})
|
||||
})
|
||||
|
||||
it('Cards', () => {
|
||||
cy.getByCypressId('history-card').should('be.visible')
|
||||
cy.get('[data-cypress-card-title=Features]')
|
||||
.findByCypressId('history-entry-pin-button')
|
||||
.should('have.attr', 'data-cypress-pinned', 'true')
|
||||
.click()
|
||||
cy.getByCypressId('notification-toast').should('be.visible')
|
||||
})
|
||||
|
||||
it('Table', () => {
|
||||
cy.getByCypressId('history-mode-table').click()
|
||||
cy.get('[data-cypress-entry-title=Features]')
|
||||
.findByCypressId('history-entry-pin-button')
|
||||
.should('have.attr', 'data-cypress-pinned', 'true')
|
||||
.click()
|
||||
cy.getByCypressId('notification-toast').should('be.visible')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('Import', () => {
|
||||
beforeEach(() => {
|
||||
cy.clearLocalStorage('history')
|
||||
cy.intercept('GET', '/api/private/me/history', {
|
||||
body: []
|
||||
})
|
||||
cy.visitHistory()
|
||||
cy.logOut()
|
||||
|
||||
cy.fixture('history.json').as('history')
|
||||
cy.fixture('history-2.json').as('history-2')
|
||||
cy.fixture('invalid-history.txt').as('invalid-history')
|
||||
})
|
||||
|
||||
it('works with valid file', () => {
|
||||
cy.getByCypressId('import-history-file-button').should('be.visible')
|
||||
cy.getByCypressId('import-history-file-input').selectFile(
|
||||
{
|
||||
contents: '@history',
|
||||
fileName: 'history.json',
|
||||
mimeType: 'application/json'
|
||||
},
|
||||
{ force: true }
|
||||
)
|
||||
cy.getByCypressId('history-entry-title').should('have.length', 1).contains('cy-Test')
|
||||
})
|
||||
|
||||
it('fails on invalid file', () => {
|
||||
cy.getByCypressId('import-history-file-button').should('be.visible')
|
||||
cy.getByCypressId('import-history-file-input').selectFile(
|
||||
{
|
||||
contents: '@invalid-history',
|
||||
fileName: 'invalid-history.txt',
|
||||
mimeType: 'text/plain'
|
||||
},
|
||||
{ force: true }
|
||||
)
|
||||
cy.getByCypressId('notification-toast').should('be.visible')
|
||||
})
|
||||
|
||||
it('works when selecting two files with the same name', () => {
|
||||
cy.getByCypressId('import-history-file-button').should('be.visible')
|
||||
cy.getByCypressId('import-history-file-input').selectFile(
|
||||
{
|
||||
contents: '@history',
|
||||
fileName: 'history.json',
|
||||
mimeType: 'application/json'
|
||||
},
|
||||
{ force: true }
|
||||
)
|
||||
cy.getByCypressId('history-entry-title').should('have.length', 1).contains('cy-Test')
|
||||
cy.getByCypressId('import-history-file-button').should('be.visible')
|
||||
cy.getByCypressId('import-history-file-input').selectFile(
|
||||
{
|
||||
contents: '@history-2',
|
||||
fileName: 'history.json',
|
||||
mimeType: 'application/json'
|
||||
},
|
||||
{ force: true }
|
||||
)
|
||||
cy.getByCypressId('history-entry-title').should('have.length', 2).contains('cy-Test2')
|
||||
})
|
||||
})
|
||||
})
|
|
@ -19,7 +19,7 @@ describe('Revision modal', () => {
|
|||
createdAt: defaultCreatedAt,
|
||||
length: 2788,
|
||||
authorUsernames: [],
|
||||
anonymousAuthorCount: 4,
|
||||
guestAuthorUuids: ['1', '2', '3', '4'],
|
||||
title: 'Features',
|
||||
description: 'Many features, such wow!',
|
||||
tags: ['hedgedoc', 'demo', 'react']
|
||||
|
@ -29,7 +29,7 @@ describe('Revision modal', () => {
|
|||
createdAt: defaultCreatedAt,
|
||||
length: 2782,
|
||||
authorUsernames: [],
|
||||
anonymousAuthorCount: 2,
|
||||
guestAuthorUuids: ['1', '2'],
|
||||
title: 'Features',
|
||||
description: 'Many more features, such wow!',
|
||||
tags: ['hedgedoc', 'demo', 'react']
|
||||
|
@ -81,7 +81,7 @@ describe('Revision modal', () => {
|
|||
edits: [],
|
||||
length: 2788,
|
||||
authorUsernames: [],
|
||||
anonymousAuthorCount: 4,
|
||||
authorGuestUuids: ['1', '2', '3'],
|
||||
content: testContent
|
||||
})
|
||||
|
||||
|
|
|
@ -8,20 +8,13 @@ import type { NoteDto } from '@hedgedoc/commons'
|
|||
export const testNoteId = 'test'
|
||||
const mockMetadata = {
|
||||
id: testNoteId,
|
||||
aliases: [
|
||||
{
|
||||
name: 'mock-note',
|
||||
primaryAlias: true,
|
||||
noteId: testNoteId
|
||||
}
|
||||
],
|
||||
aliases: ['mock-note'],
|
||||
primaryAlias: 'mock-note',
|
||||
title: 'Mock Note',
|
||||
description: 'Mocked note for testing',
|
||||
tags: ['test', 'mock', 'cypress'],
|
||||
updatedAt: '2021-04-24T09:27:51.000Z',
|
||||
lastUpdatedBy: null,
|
||||
viewCount: 0,
|
||||
version: 2,
|
||||
createdAt: '2021-04-24T09:27:51.000Z',
|
||||
editedBy: [],
|
||||
|
|
|
@ -19,10 +19,6 @@ Cypress.Commands.add('visitHome', () => {
|
|||
return cy.visit('/', { retryOnNetworkFailure: true, retryOnStatusCodeFailure: true })
|
||||
})
|
||||
|
||||
Cypress.Commands.add('visitHistory', () => {
|
||||
return cy.visit(`/history`, { retryOnNetworkFailure: true, retryOnStatusCodeFailure: true })
|
||||
})
|
||||
|
||||
export enum PAGE_MODE {
|
||||
EDITOR = 'n',
|
||||
PRESENTATION = 'p',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue