Add redir

This commit is contained in:
2025-12-02 17:00:19 +01:00
parent 60f04f1aa8
commit 80b58147ed
16 changed files with 198 additions and 195 deletions

View File

@@ -1,7 +1,7 @@
package com.imgfloat.app;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.imgfloat.app.model.ImageRequest;
import com.imgfloat.app.model.AssetRequest;
import com.imgfloat.app.model.VisibilityRequest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +33,7 @@ class ChannelApiIntegrationTest {
private ObjectMapper objectMapper;
@Test
void broadcasterManagesAdminsAndImages() throws Exception {
void broadcasterManagesAdminsAndAssets() throws Exception {
String broadcaster = "caster";
mockMvc.perform(post("/api/channels/{broadcaster}/admins", broadcaster)
.contentType(MediaType.APPLICATION_JSON)
@@ -41,39 +41,39 @@ class ChannelApiIntegrationTest {
.with(oauth2Login().attributes(attrs -> attrs.put("preferred_username", broadcaster))))
.andExpect(status().isOk());
ImageRequest request = new ImageRequest();
AssetRequest request = new AssetRequest();
request.setUrl("https://example.com/image.png");
request.setWidth(300);
request.setHeight(200);
String body = objectMapper.writeValueAsString(request);
String imageId = objectMapper.readTree(mockMvc.perform(post("/api/channels/{broadcaster}/images", broadcaster)
String assetId = objectMapper.readTree(mockMvc.perform(post("/api/channels/{broadcaster}/assets", broadcaster)
.contentType(MediaType.APPLICATION_JSON)
.content(body)
.with(oauth2Login().attributes(attrs -> attrs.put("preferred_username", broadcaster))))
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString()).get("id").asText();
mockMvc.perform(get("/api/channels/{broadcaster}/images", broadcaster)
mockMvc.perform(get("/api/channels/{broadcaster}/assets", broadcaster)
.with(oauth2Login().attributes(attrs -> attrs.put("preferred_username", broadcaster))))
.andExpect(status().isOk())
.andExpect(jsonPath("$", hasSize(1)));
VisibilityRequest visibilityRequest = new VisibilityRequest();
visibilityRequest.setHidden(false);
mockMvc.perform(put("/api/channels/{broadcaster}/images/{id}/visibility", broadcaster, imageId)
mockMvc.perform(put("/api/channels/{broadcaster}/assets/{id}/visibility", broadcaster, assetId)
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(visibilityRequest))
.with(oauth2Login().attributes(attrs -> attrs.put("preferred_username", broadcaster))))
.andExpect(status().isOk())
.andExpect(jsonPath("$.hidden").value(false));
mockMvc.perform(get("/api/channels/{broadcaster}/images/visible", broadcaster)
mockMvc.perform(get("/api/channels/{broadcaster}/assets/visible", broadcaster)
.with(oauth2Login().attributes(attrs -> attrs.put("preferred_username", broadcaster))))
.andExpect(status().isOk())
.andExpect(jsonPath("$", hasSize(1)));
mockMvc.perform(delete("/api/channels/{broadcaster}/images/{id}", broadcaster, imageId)
mockMvc.perform(delete("/api/channels/{broadcaster}/assets/{id}", broadcaster, assetId)
.with(oauth2Login().attributes(attrs -> attrs.put("preferred_username", broadcaster))))
.andExpect(status().isOk());
}

View File

@@ -1,6 +1,6 @@
package com.imgfloat.app;
import com.imgfloat.app.model.ImageRequest;
import com.imgfloat.app.model.AssetRequest;
import com.imgfloat.app.model.TransformRequest;
import com.imgfloat.app.model.VisibilityRequest;
import com.imgfloat.app.service.ChannelDirectoryService;
@@ -26,13 +26,13 @@ class ChannelDirectoryServiceTest {
}
@Test
void createsImagesAndBroadcastsEvents() {
ImageRequest request = new ImageRequest();
void createsAssetsAndBroadcastsEvents() {
AssetRequest request = new AssetRequest();
request.setUrl("https://example.com/image.png");
request.setWidth(1200);
request.setHeight(800);
Optional<?> created = service.createImage("caster", request);
Optional<?> created = service.createAsset("caster", request);
assertThat(created).isPresent();
ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class);
verify(messagingTemplate).convertAndSend(org.mockito.ArgumentMatchers.contains("/topic/channel/caster"), captor.capture());
@@ -40,13 +40,13 @@ class ChannelDirectoryServiceTest {
@Test
void updatesTransformAndVisibility() {
ImageRequest request = new ImageRequest();
AssetRequest request = new AssetRequest();
request.setUrl("https://example.com/image.png");
request.setWidth(400);
request.setHeight(300);
String channel = "caster";
String id = service.createImage(channel, request).orElseThrow().getId();
String id = service.createAsset(channel, request).orElseThrow().getId();
TransformRequest transform = new TransformRequest();
transform.setX(10);

View File

@@ -1,2 +1,3 @@
TWITCH_CLIENT_ID=test-client-id
TWITCH_CLIENT_SECRET=test-client-secret
TWITCH_REDIRECT_URI=http://localhost:8080/login/oauth2/code/twitch