Anruf-Popup mit Job-Knöpfen und Annehmen; Anrufkarte entfernt
Adressen tragen die Kennungen ihrer Jobs (job_ids) – das Anruf-Popup zeigt
je Kennung einen Knopf, der den Job über den neuen Endpunkt
GET /api/jobs/{id} aus der Sammlung holt und seine Sprungadresse (url) in
einem neuen Tab öffnet; Fehler (unbekannte Kennung, Ablage nicht
erreichbar) erscheinen im Popup. Der Knopf "Auftrag öffnen" (customer.url)
ist entfallen.
Das Popup öffnet jetzt bei jedem eingehenden Anruf – mit Kundendaten, wenn
die Rufnummer einem Kunden gehört, sonst nur mit der Rufnummer – und trägt
links unten einen grünen Knopf "Anruf annehmen", solange es klingelt. Die
Anrufkarte über den Tabs (IncomingCallCard) ist damit überflüssig und
samt Styles ausgebaut; ein Ablehnen-Knopf fehlt dem Popup noch.
Die Debug-Starts beenden vorab einen Altlauf des Backends: eine Task macht
Port 8080 frei (nur der Lauscher – lsof ohne -sTCP:LISTEN träfe auch den
Vite-Proxy) und hängt als preLaunchTask an beiden Backend-Konfigurationen;
tasks.json wandert dafür mit ins Repo.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3a86bc1eee
commit
ab5e402ee9
12 files changed
+287
-155
No files matched your search
@@ -0,0 +1,53 @@
|
||||
package de.appcreation.swyxweb;
|
||||
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.bean.override.mockito.MockitoBean;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
|
||||
import de.appcreation.swyxweb.storage.ArchiveService;
|
||||
import de.appcreation.swyxweb.storage.JobEntry;
|
||||
|
||||
/**
|
||||
* Der Endpunkt liefert einen einzelnen Job zur Kennung des Fremdsystems – so
|
||||
* kommt das Anruf-Popup von einer Kennung aus {@code job_ids} an die
|
||||
* Sprungadresse des Jobs. Der {@link ArchiveService} ist ersetzt – der Test
|
||||
* läuft ohne MongoDB.
|
||||
*/
|
||||
@SpringBootTest
|
||||
@AutoConfigureMockMvc
|
||||
class JobControllerTests {
|
||||
|
||||
@Autowired
|
||||
MockMvc mvc;
|
||||
|
||||
@MockitoBean
|
||||
ArchiveService archive;
|
||||
|
||||
@Test
|
||||
void returnsStoredJob() throws Exception {
|
||||
when(archive.job(21891263L)).thenReturn(new JobEntry(21891263L, null,
|
||||
"https://test.sb.assecutor.de/admin/jb_detail.php?job_id=21891263",
|
||||
1, "2026-08-13T13:35:27", null, null, null, null, null, null, null, null, null, null));
|
||||
|
||||
mvc.perform(get("/api/jobs/21891263"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.id").value(21891263))
|
||||
.andExpect(jsonPath("$.url").value("https://test.sb.assecutor.de/admin/jb_detail.php?job_id=21891263"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void unknownIdIsNotFound() throws Exception {
|
||||
when(archive.job(4711L)).thenReturn(null);
|
||||
|
||||
mvc.perform(get("/api/jobs/4711"))
|
||||
.andExpect(status().isNotFound());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user