diff --git a/scm-ui/ui-components/src/forms/FileUpload.tsx b/scm-ui/ui-components/src/forms/FileUpload.tsx index 44eeaf0000..1a7dafcded 100644 --- a/scm-ui/ui-components/src/forms/FileUpload.tsx +++ b/scm-ui/ui-components/src/forms/FileUpload.tsx @@ -43,9 +43,9 @@ const FileUpload: FC = ({ handleFile }) => { name="resume" onChange={(event: ChangeEvent) => { const uploadedFile = event?.target?.files![0]; - // @ts-ignore + // @ts-ignore the uploaded file doesn't match our types setFile(uploadedFile); - // @ts-ignore + // @ts-ignore the uploaded file doesn't match our types handleFile(uploadedFile); }} /> diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java index 26f828571b..52301ef3a9 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java @@ -41,7 +41,6 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; -import sonia.scm.HandlerEventType; import sonia.scm.PageResult; import sonia.scm.config.ScmConfiguration; import sonia.scm.event.ScmEventBus; @@ -67,7 +66,6 @@ import sonia.scm.web.RestDispatcher; import sonia.scm.web.VndMediaType; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.MediaType; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -100,6 +98,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.ArgumentMatchers.anyObject; import static org.mockito.ArgumentMatchers.anyString; @@ -641,17 +640,37 @@ public class RepositoryRootResourceTest extends RepositoryTestBase { URL dumpUrl = Resources.getResource("sonia/scm/api/v2/svn.dump.gz"); byte[] svnDump = Resources.toByteArray(dumpUrl); - UnbundleCommandBuilder ubc = mock(UnbundleCommandBuilder.class); - when(ubc.setCompressed(any())).thenReturn(ubc); + UnbundleCommandBuilder ubc = mock(UnbundleCommandBuilder.class, RETURNS_SELF); when(ubc.unbundle(any(File.class))).thenReturn(new UnbundleResponse(42)); RepositoryService service = mock(RepositoryService.class); when(serviceFactory.create(any(Repository.class))).thenReturn(service); when(service.getUnbundleCommand()).thenReturn(ubc); InputStream in = new ByteArrayInputStream(svnDump); - repositoryImportResource.unbundleImport(in, true); + + Consumer repositoryConsumer = repositoryImportResource.unbundleImport(in, true); + repositoryConsumer.accept(RepositoryTestData.createHeartOfGold("svn")); verify(ubc).setCompressed(true); - //TODO Enhance test + verify(ubc).unbundle(any(File.class)); + } + + @Test + public void shouldImportNonCompressedBundle() throws IOException { + URL dumpUrl = Resources.getResource("sonia/scm/api/v2/svn.dump"); + byte[] svnDump = Resources.toByteArray(dumpUrl); + + UnbundleCommandBuilder ubc = mock(UnbundleCommandBuilder.class, RETURNS_SELF); + when(ubc.unbundle(any(File.class))).thenReturn(new UnbundleResponse(21)); + RepositoryService service = mock(RepositoryService.class); + when(serviceFactory.create(any(Repository.class))).thenReturn(service); + when(service.getUnbundleCommand()).thenReturn(ubc); + InputStream in = new ByteArrayInputStream(svnDump); + + Consumer repositoryConsumer = repositoryImportResource.unbundleImport(in, false); + repositoryConsumer.accept(RepositoryTestData.createHeartOfGold("svn")); + + verify(ubc, never()).setCompressed(true); + verify(ubc).unbundle(any(File.class)); } private PageResult createSingletonPageResult(Repository repository) { diff --git a/scm-webapp/src/test/resources/sonia/scm/api/v2/import-repo-from-bundle.json b/scm-webapp/src/test/resources/sonia/scm/api/v2/import-repo-from-bundle.json deleted file mode 100644 index 5bc573f2a8..0000000000 --- a/scm-webapp/src/test/resources/sonia/scm/api/v2/import-repo-from-bundle.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "contact": "none@example.com", - "description": "Test repository", - "namespace": "space", - "name": "repo", - "type": "svn" -}