Projekte im Ticketsystem: Anlegen, Archiv und Anzeige repariert
- Neues Projekt (Projekte-Seite): Repo-Name blieb nach dem ersten
Buchstaben der Subdomain stehen ("m" statt "musterfirma")
- Ticket "Projekt waehlen": archivierte Repos nach Flag ausblenden, nicht
nach status (reaktivierte fehlten, archivierte wurden angeboten)
- Projektliste: "Aktive Projekte" + neue Ansicht "Alle inkl. Archiv";
Liste wird auch nach einem Anlege-Fehler neu geladen
- Kundenauswahl: "Kein Kunde" entfernt Kunde und Ticket wirklich (mit
Rueckfrage); beim Kundenwechsel bleibt kein fremdes Ticket haengen
- Zuordnen-Assistent ueberschreibt eine vorhandene Website nicht mehr
- Neues Projekt am Ticket bekommt die Art Website
- Umlaute in Subdomains wie im Portal (mueller statt m-ller)
- Preview-Block nur mit gespeicherter Subdomain; archivierte Projekte
erst reaktivieren, bevor sie bearbeitet werden
- Repo-Import beim Aufklappen hoechstens einmal pro Minute
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
78bc99a73b
commit
f4c8b235b9
13 files changed
+269
-92
No files matched your search
@@ -0,0 +1,36 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { loadModule } from './load.mjs'
|
||||
|
||||
const { projectCounts, projectsInView } = await loadModule('src/lib/projectList.js')
|
||||
|
||||
const P = [
|
||||
{ $id: 'a' },
|
||||
{ $id: 'b', customerId: 'k' },
|
||||
{ $id: 'c', archived: true },
|
||||
{ $id: 'd', isTemplate: true },
|
||||
{ $id: 'e', isTemplate: true, archived: true },
|
||||
]
|
||||
const ids = (list) => list.map((p) => p.$id)
|
||||
|
||||
test('Aktive Projekte ohne Archiv und Vorlagen', () => {
|
||||
assert.deepEqual(ids(projectsInView(P, 'all')), ['a', 'b'])
|
||||
assert.deepEqual(ids(projectsInView(P, 'unassigned')), ['a'])
|
||||
assert.deepEqual(ids(projectsInView(P, 'assigned')), ['b'])
|
||||
})
|
||||
|
||||
test('Alle inkl. Archiv: wirklich alles (Vorlagen nur fuer Admins)', () => {
|
||||
assert.deepEqual(ids(projectsInView(P, 'everything')), ['a', 'b', 'c'])
|
||||
assert.deepEqual(ids(projectsInView(P, 'everything', { isAdmin: true })), ['a', 'b', 'c', 'd', 'e'])
|
||||
})
|
||||
|
||||
test('Archiviert und Vorlagen', () => {
|
||||
assert.deepEqual(ids(projectsInView(P, 'archived')), ['c'])
|
||||
assert.deepEqual(ids(projectsInView(P, 'archived', { isAdmin: true })), ['c', 'e'])
|
||||
assert.deepEqual(ids(projectsInView(P, 'templates')), ['d'])
|
||||
})
|
||||
|
||||
test('Zaehler passen zu den Ansichten', () => {
|
||||
assert.deepEqual(projectCounts(P), { all: 2, unassigned: 1, assigned: 1, archived: 1, templates: 1, everything: 3 })
|
||||
assert.deepEqual(projectCounts(P, { isAdmin: true }).everything, 5)
|
||||
})
|
||||
Reference in new issue
Block a user