Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
3b7e2b6
test: ν•™μŠ΅ ν…ŒμŠ€νŠΈ μ½”λ“œ μΆ”κ°€
s9hn Aug 7, 2024
3da0ee8
feat: ν•™μŠ΅ μ½”λ“œ μΆ”κ°€
s9hn Aug 7, 2024
c651b02
docs: κΈ°λŠ₯ λͺ…μ„Έμ„œ μž‘μ„±
s9hn Aug 8, 2024
dc54722
feat: 컬러 μƒμˆ˜ν™”
s9hn Aug 8, 2024
f7fb867
feat: ν…μŠ€νŠΈ μŠ€νƒ€μΌ μΆ”κ°€
s9hn Aug 8, 2024
8b33946
feat: 헀더 UI κ΅¬ν˜„
s9hn Aug 8, 2024
300701c
feat: νšŒμ›μ •λ³΄ μž…λ ₯ Textfield κ΅¬ν˜„
s9hn Aug 8, 2024
a3fe022
feat: Textfield 배치 및 state 관리 둜직 κ΅¬ν˜„
s9hn Aug 8, 2024
4f4b589
refactor: Password, Password Confirm μ•”ν˜Έν™” UI κ΅¬ν˜„
s9hn Aug 8, 2024
41847e2
feat: sign up λ²„νŠΌ κ΅¬ν˜„
s9hn Aug 8, 2024
6620006
refactor: unfocusedTextColor μΆ”κ°€
s9hn Aug 8, 2024
76b082c
build: resolve merge conflict
s9hn Aug 8, 2024
b93f477
feat: 각 μ»΄ν¬λ„ŒνŠΈ 별 preview ν•¨μˆ˜ κ΅¬ν˜„
s9hn Aug 11, 2024
f5ac072
refactor: λžŒλ‹€ μŠ€μ½”ν”„ 제거
s9hn Aug 11, 2024
c4d14c1
docs: κΈ°λŠ₯ λͺ…μ„Έ μˆ˜μ •
s9hn Aug 11, 2024
05ccb01
docs: κΈ°λŠ₯ λͺ…μ„Έ μˆ˜μ •
s9hn Aug 12, 2024
4b1c491
feat: μœ νš¨μ„± μ—λŸ¬ UI κ΅¬ν˜„
s9hn Aug 12, 2024
d957966
feat: μœ νš¨μ„± μ—λŸ¬ UI κ΅¬ν˜„
s9hn Aug 12, 2024
42bda93
feat: νšŒμ›κ°€μž… μž…λ ₯ν…μŠ€νŠΈ νƒ€μž… μΈν„°νŽ˜μ΄μŠ€ 및 μœ νš¨μ„± κ²€μ‚¬λ‘œμ§ κ΅¬ν˜„
s9hn Aug 12, 2024
bf4de4e
feat: UsernameTest κ΅¬ν˜„
s9hn Aug 12, 2024
7a62665
feat: Email μœ νš¨μ„± κ²€μ‚¬λ‘œμ§ κ΅¬ν˜„
s9hn Aug 12, 2024
9a14aa3
refactor: isValid -> validate ν•¨μˆ˜λͺ… λ³€κ²½ 및 νƒ€μž… 정보에 λ”°λ₯Έ λΆ„κΈ°μ²˜λ¦¬ 둜직 μΆ”κ°€
s9hn Aug 12, 2024
7c84b1f
refactor: gitkeep 제거 및 νŒ¨ν‚€μ§€ 뢄리
s9hn Aug 12, 2024
84f3f19
feat: email μ •κ·œμ‹ ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 12, 2024
1dd5bbb
feat: password μœ νš¨μ„± 검사 κ΅¬ν˜„
s9hn Aug 12, 2024
64d5fdd
refactor: SignupInputType -> SignupValidator둜 넀이밍 μˆ˜μ •
s9hn Aug 12, 2024
365291b
test: password ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 12, 2024
4348262
feat: λΉ„λ°€λ²ˆν˜Έ 확인 μœ νš¨μ„± κ²€μ‚¬λ‘œμ§ κ΅¬ν˜„
s9hn Aug 12, 2024
a8a2a4c
test: λΉ„λ°€λ²ˆν˜Έ 확인 ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 12, 2024
2f4cb9e
refactor: screen 뢄리 및 μœ νš¨μ„± 검사 둜직 적용
s9hn Aug 12, 2024
db6c9a2
test: UI ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 12, 2024
ab0865a
refactor: 곡톡 μΈν„°λ ‰μ…˜ μ½”λ“œ μ „μ—­ λ³€μˆ˜λ‘œ 뢄리
s9hn Aug 12, 2024
92b7774
refactor: λΆˆν•„μš”ν•œ λ³€μˆ˜ 제거
s9hn Aug 12, 2024
028b69b
build: resolve merge conflict
s9hn Aug 12, 2024
14673b0
refactor: SignupTextField & SignupButton μ»΄ν¬λ„ŒνŠΈ 뢄리
s9hn Aug 13, 2024
05af1bf
refactor: SignupButton μ»΄ν¬λ„ŒνŠΈν™” 및 적용
s9hn Aug 13, 2024
4c48442
refactor: SignupTextField μ»΄ν¬λ„ŒνŠΈν™” 및 적용
s9hn Aug 13, 2024
3448411
refactor: testμ½”λ“œ 곡백 μ–Έλ”λ°”λ‘œ μˆ˜μ •
s9hn Aug 13, 2024
c0078da
refactor: signUp -> signup 넀이밍 μˆ˜μ •
s9hn Aug 13, 2024
f103ff2
feat: snackBar κ΅¬ν˜„
s9hn Aug 13, 2024
697b509
refactor: 린트 정리
s9hn Aug 13, 2024
9bdf9f9
docs: κΈ°λŠ₯ λͺ…μ„Έμ„œ μˆ˜μ •
s9hn Aug 13, 2024
2901f1e
refactor: component에 contentDescription μΆ”κ°€
s9hn Aug 13, 2024
333e376
build: resolve merge conflict
s9hn Aug 13, 2024
e6cfb32
refactor: μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈ μˆ˜μ •
s9hn Aug 13, 2024
5844c2a
test: λ²„νŠΌ ν™œμ„±ν™” ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 13, 2024
ce53cec
refactor: snackbar testable ꡬ쑰둜 λ³€κ²½
s9hn Aug 13, 2024
1333ba8
test: snackBar ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 13, 2024
a4f86f7
docs: κΈ°λŠ₯ λͺ…μ„Έ μ—…λ°μ΄νŠΈ
s9hn Aug 13, 2024
f177595
refactor: νŒ¨ν‚€μ§€ 및 파일 뢄리
s9hn Aug 16, 2024
911748b
refactor: μ»΄ν¬λ„ŒνŠΈ 별 프리뷰 생성
s9hn Aug 16, 2024
b51d47e
refactor: μ»΄ν¬λ„ŒνŠΈ κΈ°λ³Έ μƒμ„±μž 제거
s9hn Aug 16, 2024
e30eb23
refactor: μ»΄ν¬λ„ŒνŠΈ νŒŒλΌλ―Έν„° μˆœμ„œ λ³€κ²½
s9hn Aug 16, 2024
b7b5628
test: signupButton ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 16, 2024
751b667
test: signupTextField ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 16, 2024
9ed7c2a
refactor: λΆˆν•„μš”ν•œ λ§€κ°œλ³€μˆ˜ 제거
s9hn Aug 16, 2024
affb859
test: CreateAccountButton ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 16, 2024
602b7c0
test: HeaderText ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 16, 2024
7ef1a60
test: μž…λ ₯ν•­λͺ© 별 TextField ν…ŒμŠ€νŠΈ κ΅¬ν˜„
s9hn Aug 16, 2024
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
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# android-signup

## κΈ°λŠ₯ μš”κ΅¬ 사항
- [x] ν…μŠ€νŠΈ μŠ€νƒ€μΌ κ°€μ΄λ“œ κ΅¬ν˜„
- [x] Color μƒμˆ˜ν™”

#### νšŒμ›κ°€μž… λ·°
- [x] νšŒμ›μ •λ³΄ μž…λ ₯ μ»΄ν¬λ„ŒνŠΈ κ΅¬ν˜„
- [x] νšŒμ›κ°€μž… λ²„νŠΌ κ΅¬ν˜„
Expand All @@ -25,3 +21,9 @@
- [x] Password Confirm μœ νš¨μ„± 검사 κ΅¬ν˜„
- [x] Password Confirm λΉ„λ°€λ²ˆν˜Έ 일치 μ—¬λΆ€
- [x] Password Confirm λΉ„λ°€λ²ˆν˜Έ 일치 μ—¬λΆ€ ν…ŒμŠ€νŠΈ
- [x] μœ νš¨μ„± 톡과일 경우 Button ν™œμ„±ν™”
- [x] Button ν™œμ„±ν™” UI ν…ŒμŠ€νŠΈ
- [x] λ²„νŠΌ 클릭 μ‹œ μŠ€λ‚΅ λ°” UI κ΅¬ν˜„
- [x] μŠ€λ‚΅ λ°” UI ν…ŒμŠ€νŠΈ
- [ ] νšŒμ›κ°€μž… TextField UI ν…ŒμŠ€νŠΈ
- [ ] νšŒμ›κ°€μž… Button UI ν…ŒμŠ€νŠΈ
198 changes: 0 additions & 198 deletions app/src/androidTest/java/nextstep/signup/SignupScreenTest.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package nextstep.signup.common

import androidx.compose.ui.graphics.Color
import androidx.compose.ui.test.assertIsNotEnabled
import androidx.compose.ui.test.assertTextEquals
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithContentDescription
import nextstep.signup.ui.common.component.SignupButton
import org.junit.Rule
import org.junit.Test

class SignupButtonTest {

@get:Rule
val composeTestRule = createComposeRule()
private val signUpButtonTag = "SignupButtonTag"

@Test
fun λ²„νŠΌμ˜_ν…μŠ€νŠΈλ₯Ό_μ§€μ •ν• _수_μžˆλ‹€() {
// given:
val givenButtonText = "μ§€μ •λœ λ²„νŠΌ ν…μŠ€νŠΈ"

// when:
composeTestRule.apply {
setContent {
SignupButton(
buttonText = givenButtonText,
buttonTextColor = Color.Unspecified,
onButtonClick = {},
containerColor = Color.Unspecified,
enabled = true,
componentDescription = signUpButtonTag
)
}
}

// then:
composeTestRule.onNodeWithContentDescription(signUpButtonTag)
.assertTextEquals("μ§€μ •λœ λ²„νŠΌ ν…μŠ€νŠΈ")
}

@Test
fun λ²„νŠΌμ˜_ν™œμ„±ν™”λ₯Ό_μ§€μ •ν• _수_μžˆλ‹€() {
// given:
val givenEnabled = false

// when:
composeTestRule.apply {
setContent {
SignupButton(
buttonText = "buttonText",
buttonTextColor = Color.Unspecified,
onButtonClick = {},
containerColor = Color.Unspecified,
enabled = givenEnabled,
componentDescription = signUpButtonTag
)
}
}

// then:
composeTestRule.onNodeWithContentDescription(signUpButtonTag).assertIsNotEnabled()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package nextstep.signup.common

import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.test.assertTextContains
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithContentDescription
import androidx.compose.ui.test.performTextInput
import nextstep.signup.ui.common.component.SignupTextField
import org.junit.Rule
import org.junit.Test

class SignupTextFieldTest {

@get:Rule
val composeTestRule = createComposeRule()
private val signUpTextFieldTag = "SignUpTextFieldTag"

@Test
fun ν…μŠ€νŠΈν•„λ“œμ˜_라벨을_μ§€μ •ν• _수_μžˆλ‹€() {
// given:
val givenTextFieldLabel = "μ§€μ •λœ λ²„νŠΌ 라벨"

// when:
composeTestRule.apply {
setContent {
SignupTextField(
text = "",
onTextChanged = {},
label = givenTextFieldLabel,
componentDescription = signUpTextFieldTag
)
}
}

// then:
composeTestRule.onNodeWithContentDescription(signUpTextFieldTag)
.assertTextContains("μ§€μ •λœ λ²„νŠΌ 라벨")
}

@Test
fun μž…λ ₯ν•œ_ν…μŠ€νŠΈκ°€_ν…μŠ€νŠΈ_ν•„λ“œμ—_좜λ ₯λœλ‹€() {
// given:
var text by mutableStateOf("")
val givenText = "ν…ŒμŠ€νŠΈ"

// when:
composeTestRule.apply {
setContent {
SignupTextField(
text = text,
onTextChanged = { text = it },
label = "",
componentDescription = signUpTextFieldTag
)
}

onNodeWithContentDescription(signUpTextFieldTag).performTextInput(givenText)
}


// then:
composeTestRule.onNodeWithContentDescription(signUpTextFieldTag)
.assertTextContains("ν…ŒμŠ€νŠΈ")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package nextstep.signup.signup

import androidx.compose.ui.test.assertIsEnabled
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import nextstep.signup.ui.signup.component.CreateAccountButton
import org.junit.Rule
import org.junit.Test

class CreateAccountButtonTest {

@get:Rule
val composeTestRule = createComposeRule()

@Test
fun isSuccessful이_true이면_λ²„νŠΌμ΄_ν™œμ„±ν™”λœλ‹€() {
// given:
val isSuccessful = true

// when:
composeTestRule.apply {
setContent {
CreateAccountButton(
isSuccessfulCondition = isSuccessful,
onCreateAccountButtonClick = {},
)
}
}

// then:
composeTestRule.onNodeWithText("Sign Up").assertIsEnabled()
}
}
Loading