Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Setting test frontend URL globally #2890

Merged
merged 1 commit into from
Feb 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ class V2InvitationControllerTest : AuthorizedControllerTest() {
fun `deletes translate invitation with languages`() {
val base = dbPopulator.createBase()
val project = base.project
tolgeeProperties.frontEndUrl = "https://dummyUrl.com"
val invitation = createTranslateInvitation(project)

performAuthDelete("/v2/invitations/${invitation.id}").andIsOk
Expand All @@ -54,23 +53,20 @@ class V2InvitationControllerTest : AuthorizedControllerTest() {
fun `project invitation contains creator info`() {
val base = dbPopulator.createBase()
val project = base.project
tolgeeProperties.frontEndUrl = "https://dummyUrl.com"
val invitation = createTranslateInvitation(project)
assertThat(invitation.createdBy?.name).isEqualTo("admin")
}

@Test
fun `organization invitation contains creator info`() {
val base = dbPopulator.createBase()
tolgeeProperties.frontEndUrl = "https://dummyUrl.com"
val invitation = createOrganizationInvitation(base.organization)
assertThat(invitation.createdBy?.name).isEqualTo("admin")
}

@Test
fun `deletes invitations created by deleted user`() {
val base = dbPopulator.createBase()
tolgeeProperties.frontEndUrl = "https://dummyUrl.com"
val newUser = dbPopulator.createUserIfNotExists("manager")
permissionService.grantFullAccessToProject(newUser, base.project)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,7 @@ import io.tolgee.development.testDataBuilder.data.SensitiveOperationProtectionTe
import io.tolgee.development.testDataBuilder.data.UserDeletionTestData
import io.tolgee.dtos.request.UserUpdatePasswordRequestDto
import io.tolgee.dtos.request.UserUpdateRequestDto
import io.tolgee.fixtures.EmailTestUtil
import io.tolgee.fixtures.andAssertThatJson
import io.tolgee.fixtures.andIsBadRequest
import io.tolgee.fixtures.andIsForbidden
import io.tolgee.fixtures.andIsOk
import io.tolgee.fixtures.node
import io.tolgee.fixtures.*
import io.tolgee.model.UserAccount
import io.tolgee.testing.AuthorizedControllerTest
import io.tolgee.testing.ContextRecreatingTest
Expand All @@ -26,11 +21,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers
import java.util.*

@ContextRecreatingTest
@SpringBootTest(
properties = [
"tolgee.front-end-url=https://fake.frontend.url",
],
)
@SpringBootTest
class V2UserControllerTest : AuthorizedControllerTest() {
@Autowired
override lateinit var tolgeeProperties: TolgeeProperties
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,7 @@ import io.tolgee.dtos.misc.CreateOrganizationInvitationParams
import io.tolgee.dtos.request.organization.OrganizationDto
import io.tolgee.dtos.request.organization.OrganizationInviteUserDto
import io.tolgee.exceptions.BadRequestException
import io.tolgee.fixtures.EmailTestUtil
import io.tolgee.fixtures.andAssertThatJson
import io.tolgee.fixtures.andGetContentAsString
import io.tolgee.fixtures.andIsBadRequest
import io.tolgee.fixtures.andIsOk
import io.tolgee.fixtures.andPrettyPrint
import io.tolgee.fixtures.*
import io.tolgee.model.Organization
import io.tolgee.model.enums.OrganizationRoleType
import io.tolgee.testing.AuthorizedControllerTest
Expand Down Expand Up @@ -45,7 +40,6 @@ class OrganizationControllerInvitingTest : AuthorizedControllerTest() {
"This is description",
"test-org",
)
tolgeeProperties.frontEndUrl = null
emailTestUtil.initMocks()
}

Expand Down Expand Up @@ -172,7 +166,7 @@ class OrganizationControllerInvitingTest : AuthorizedControllerTest() {

val messageContent = emailTestUtil.messageContents.single()
assertThat(messageContent).contains(code)
assertThat(messageContent).contains("http://localhost/")
assertThat(messageContent).contains("https://dummy-url.com")
emailTestUtil.assertEmailTo.isEqualTo(INVITED_EMAIL)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,7 @@ import io.tolgee.development.testDataBuilder.data.BaseTestData
import io.tolgee.dtos.misc.CreateProjectInvitationParams
import io.tolgee.dtos.request.project.LanguagePermissions
import io.tolgee.dtos.request.project.ProjectInviteUserDto
import io.tolgee.fixtures.EmailTestUtil
import io.tolgee.fixtures.andAssertThatJson
import io.tolgee.fixtures.andGetContentAsString
import io.tolgee.fixtures.andHasErrorMessage
import io.tolgee.fixtures.andIsBadRequest
import io.tolgee.fixtures.andIsOk
import io.tolgee.fixtures.node
import io.tolgee.fixtures.*
import io.tolgee.model.Invitation
import io.tolgee.model.Permission
import io.tolgee.model.Project
Expand All @@ -41,7 +35,6 @@ class ProjectsControllerInvitationTest : ProjectAuthControllerTest("/v2/projects
@BeforeEach
@AfterEach
fun reset() {
tolgeeProperties.frontEndUrl = null
emailTestUtil.initMocks()
}

Expand All @@ -56,7 +49,6 @@ class ProjectsControllerInvitationTest : ProjectAuthControllerTest("/v2/projects
fun `returns project invitations`() {
val base = dbPopulator.createBase()
val project = base.project
tolgeeProperties.frontEndUrl = "https://dummyUrl.com"
createTranslateInvitation(project)
performAuthGet("/v2/projects/${project.id}/invitations").andIsOk.andAssertThatJson {
node("_embedded.invitations[0]") {
Expand Down Expand Up @@ -162,19 +154,18 @@ class ProjectsControllerInvitationTest : ProjectAuthControllerTest("/v2/projects

val messageContent = emailTestUtil.messageContents.single()
assertThat(messageContent).contains(code)
assertThat(messageContent).contains("http://localhost/")
assertThat(messageContent).contains("https://dummy-url.com")
emailTestUtil.assertEmailTo.isEqualTo(INVITED_EMAIL)
}

@Test
@ProjectJWTAuthTestMethod
fun `uses frontEnd url when possible`() {
tolgeeProperties.frontEndUrl = "dummy_fe_url"
inviteWithUserWithNameAndEmail()
emailTestUtil.verifyEmailSent()

val messageContent = emailTestUtil.messageContents.single()
assertThat(messageContent).contains("dummy_fe_url")
assertThat(messageContent).contains("https://dummy-url.com")
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ class MarketingEmailingTest : AuthorizedControllerTest() {
@BeforeEach
fun setup() {
Mockito.clearInvocations(mailjetEmailServiceManager)
tolgeeProperties.frontEndUrl = "https://aaa"
tolgeeProperties.smtp.from = "[email protected]"
emailTestUtil.initMocks()
}
Expand All @@ -82,7 +81,6 @@ class MarketingEmailingTest : AuthorizedControllerTest() {
fun cleanUp() {
sendInBlueProperties.listId = null
tolgeeProperties.authentication.needsEmailVerification = false
tolgeeProperties.frontEndUrl = null
}

private val testMail = "[email protected]"
Expand All @@ -98,7 +96,6 @@ class MarketingEmailingTest : AuthorizedControllerTest() {

@Test
fun `adds contact after verification when needs-verification is on`() {
tolgeeProperties.frontEndUrl = "https://aaa"
tolgeeProperties.authentication.needsEmailVerification = true
val dto = SignUpDto(name = testName, password = "aaaaaaaaaa", email = testMail)
performPost("/api/public/sign_up", dto)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,33 @@ package io.tolgee.controllers.resetPassword
import com.posthog.java.PostHog
import io.tolgee.development.testDataBuilder.data.BaseTestData
import io.tolgee.dtos.request.auth.ResetPasswordRequest
import io.tolgee.fixtures.*
import io.tolgee.fixtures.EmailTestUtil
import io.tolgee.fixtures.andIsOk
import io.tolgee.testing.AbstractControllerTest
import io.tolgee.testing.assert
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.mockito.kotlin.times
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
import org.springframework.boot.test.mock.mockito.MockBean

@AutoConfigureMockMvc
class ResetPasswordControllerTest :
AbstractControllerTest() {
private var frontEndUrlBefore: String? = null
private var defaultFrontendUrl: String? = null

@BeforeEach
fun setup() {
defaultFrontendUrl = tolgeeProperties.frontEndUrl
emailTestUtil.initMocks()
frontEndUrlBefore = tolgeeProperties.frontEndUrl
testData = BaseTestData()
saveTestData()
}

@AfterEach
fun tearDown() {
tolgeeProperties.frontEndUrl = frontEndUrlBefore
tolgeeProperties.frontEndUrl = defaultFrontendUrl
}

private lateinit var testData: BaseTestData
Expand All @@ -43,15 +43,15 @@ class ResetPasswordControllerTest :

@Test
fun `email contains correct callback url with frontend url provided`() {
tolgeeProperties.frontEndUrl = "http://dummy-url.com/"
executePasswordChangeRequest()
emailTestUtil.firstMessageContent.assert.contains("http://dummy-url.com/reset_password/")
emailTestUtil.firstMessageContent.assert.contains("https://dummy-url.com/reset_password/")
// We don't want double slashes
emailTestUtil.firstMessageContent.assert.doesNotContain("reset_password//")
}

@Test
fun `email contains correct callback url without frontend url provided`() {
tolgeeProperties.frontEndUrl = null
executePasswordChangeRequest()
emailTestUtil.firstMessageContent.assert.contains("https://hello.com/aa/")
// We don't want double slashes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,11 @@ class EmailVerificationTest : AbstractControllerTest() {
@Autowired
override lateinit var tolgeeProperties: TolgeeProperties

private var defaultFrontendUrl: String? = null

@BeforeEach
fun setup() {
defaultFrontendUrl = tolgeeProperties.frontEndUrl
resetProperties()
tolgeeProperties.authentication.needsEmailVerification = true
emailTestUtil.initMocks()
Expand All @@ -38,7 +41,7 @@ class EmailVerificationTest : AbstractControllerTest() {

private fun resetProperties() {
tolgeeProperties.authentication.needsEmailVerification = false
tolgeeProperties.frontEndUrl = "dummy_frontend_url"
tolgeeProperties.frontEndUrl = defaultFrontendUrl
tolgeeProperties.smtp.from = "[email protected]"
}

Expand Down Expand Up @@ -120,7 +123,7 @@ class EmailVerificationTest : AbstractControllerTest() {

assertThat(emailTestUtil.messageArgumentCaptor.firstValue.subject).isEqualTo("Tolgee e-mail verification")

assertThat(getMessageContent()).contains("dummy_frontend_url/login/verify_email/${user.id}/")
assertThat(getMessageContent()).contains("https://dummy-url.com/login/verify_email/${user.id}/")

assertThat(userAccountService.findActive(user.id)).isNotNull
}
Expand All @@ -131,7 +134,7 @@ class EmailVerificationTest : AbstractControllerTest() {
perform()
val user = userAccountService.findActive(signUpDto.email) ?: throw NotFoundException()

assertThat(getMessageContent()).contains("dummy_frontend_url/login/verify_email/${user.id}/")
assertThat(getMessageContent()).contains("https://dummy-url.com/login/verify_email/${user.id}/")

assertThat(userAccountService.findActive(user.id)).isNotNull
}
Expand Down
1 change: 1 addition & 0 deletions backend/app/src/test/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,3 +83,4 @@ tolgee:
server: http://localhost:8080
batch:
concurrency: 10
front-end-url: https://dummy-url.com
Loading