@@ -9,12 +9,13 @@ import pro.azhidkov.platform.spring.sdj.ergo.hydration.ref
99import pro.azhidkov.platform.spring.sdj.ergo.hydration.resolveOrThrow
1010import pro.azhidkov.timezones.TimeZones
1111import pro.qyoga.app.therapist.appointments.core.schedule.SchedulePageController
12+ import pro.qyoga.core.appointments.core.model.AppointmentStatus
1213import pro.qyoga.core.appointments.core.toEditRequest
1314import pro.qyoga.tests.assertions.shouldBePage
1415import pro.qyoga.tests.assertions.shouldHave
1516import pro.qyoga.tests.assertions.shouldHaveElement
1617import pro.qyoga.tests.assertions.shouldMatch
17- import pro.qyoga.tests.clients.TherapistClient
18+ import pro.qyoga.tests.fixture.backgrounds.AppointmentsBackgrounds
1819import pro.qyoga.tests.fixture.data.randomCyrillicWord
1920import pro.qyoga.tests.fixture.object_mothers.appointments.AppointmentsObjectMother
2021import pro.qyoga.tests.fixture.object_mothers.appointments.AppointmentsObjectMother.aAppointmentId
@@ -36,16 +37,15 @@ import java.time.ZoneId
3637class EditAppointmentPageTest : QYogaAppIntegrationBaseTest () {
3738
3839 private val timeZones = getBean<TimeZones >()
40+ private val appointmentBackgrounds = getBean<AppointmentsBackgrounds >()
3941
4042 @Test
4143 fun `Страница редактирования только с обязательными полями записи на прием должна корректно отображаться и заполняться` () {
4244 // Сетап
43- val appointment = backgrounds.appointments.create()
44-
45- val therapist = TherapistClient .loginAsTheTherapist()
45+ val appointment = appointmentBackgrounds.create()
4646
4747 // Действие
48- val document = therapist .appointments.getEditAppointmentPage(appointment.ref())
48+ val document = theTherapist .appointments.getEditAppointmentPage(appointment.ref())
4949
5050 // Проверка
5151 document shouldBePage EditAppointmentPage
@@ -55,12 +55,10 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
5555 @Test
5656 fun `Страница редактирования со всеми заполененными полями записи на прием должна корректно отображаться и заполняться` () {
5757 // Сетап
58- val appointment = backgrounds.appointments.createFull()
59-
60- val therapist = TherapistClient .loginAsTheTherapist()
58+ val appointment = appointmentBackgrounds.createFull()
6159
6260 // Действие
63- val document = therapist .appointments.getEditAppointmentPage(appointment.ref())
61+ val document = theTherapist .appointments.getEditAppointmentPage(appointment.ref())
6462
6563 // Проверка
6664 document shouldBePage EditAppointmentPage
@@ -70,7 +68,7 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
7068 @Test
7169 fun `Отредактированная запись на прием только с обязательными полями должна сохраняться` () {
7270 // Сетап
73- val appointment = backgrounds.appointments .create()
71+ val appointment = appointmentBackgrounds .create()
7472 val newAppointmentType = backgrounds.appointmentTypes.createAppointmentType()
7573 val therapeuticTask = backgrounds.therapeuticTasks.createTherapeuticTask()
7674 val editedAppointment =
@@ -85,24 +83,22 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
8583 comment = randomCyrillicWord()
8684 )
8785
88- val therapist = TherapistClient .loginAsTheTherapist()
89-
9086 // Действие
91- val response = therapist .appointments.editAppointment(appointment.ref(), editedAppointment)
87+ val response = theTherapist .appointments.editAppointment(appointment.ref(), editedAppointment)
9288
9389 // Проверка
9490 response.statusCode() shouldBe HttpStatus .OK .value()
9591 response shouldBePage CalendarPage
9692
9793 val persistedAppointment =
98- backgrounds.appointments .getDaySchedule(editedAppointment.dateTime.toLocalDate()).single()
94+ appointmentBackgrounds .getDaySchedule(editedAppointment.dateTime.toLocalDate()).single()
9995 persistedAppointment.shouldMatch(editedAppointment)
10096 }
10197
10298 @Test
10399 fun `Отредактированная запись на прием со всеми полями должна сохраняться` () {
104100 // Сетап
105- val appointment = backgrounds.appointments .createFull()
101+ val appointment = appointmentBackgrounds .createFull()
106102 val editedAppointment =
107103 AppointmentsObjectMother .appointmentPatchRequest(
108104 appointment,
@@ -115,27 +111,22 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
115111 comment = null
116112 )
117113
118- val therapist = TherapistClient .loginAsTheTherapist()
119-
120114 // Действие
121- val response = therapist .appointments.editAppointment(appointment.ref(), editedAppointment)
115+ val response = theTherapist .appointments.editAppointment(appointment.ref(), editedAppointment)
122116
123117 // Проверка
124118 response.statusCode() shouldBe HttpStatus .OK .value()
125119 response shouldBePage CalendarPage
126120
127- val persistedAppointment = backgrounds.appointments .findAll().single()
121+ val persistedAppointment = appointmentBackgrounds .findAll().single()
128122 persistedAppointment shouldMatch editedAppointment
129123 }
130124
131125 @Test
132126 fun `При запросе страницы редактирования несуществующего приема должна возвращаться страница с ошибкой 404` () {
133- // Сетап
134- val therapist = TherapistClient .loginAsTheTherapist()
135-
136127 // Действие
137128 val document =
138- therapist .appointments.getEditAppointmentPage(aAppointmentId(), expectedStatus = HttpStatus .NOT_FOUND )
129+ theTherapist .appointments.getEditAppointmentPage(aAppointmentId(), expectedStatus = HttpStatus .NOT_FOUND )
139130
140131 // Проверка
141132 document shouldBePage (NotFoundErrorPage as HtmlPage )
@@ -144,12 +135,10 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
144135 @Test
145136 fun `При запросе на редактировании несуществующего приема должна возвращаться страница с ошибкой 404` () {
146137 // Сетап
147- val therapist = TherapistClient .loginAsTheTherapist()
148-
149138 val editAppointmentRequest = randomEditAppointmentRequest()
150139
151140 // Действие
152- val response = therapist .appointments.editAppointment(
141+ val response = theTherapist .appointments.editAppointment(
153142 aAppointmentId(), editAppointmentRequest
154143 )
155144
@@ -166,23 +155,21 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
166155 val zoneId = ZoneId .of(" Asia/Novosibirsk" )
167156 val existingAppointmentDuration = Duration .ofHours(1 )
168157
169- val existingAppointment = backgrounds.appointments .create(
158+ val existingAppointment = appointmentBackgrounds .create(
170159 dateTime = appointmentsDate.atTime(appointmentsBaseTime),
171160 timeZone = zoneId,
172161 duration = existingAppointmentDuration
173162 )
174- val nextNotRescheduledAppointment = backgrounds.appointments .create(
163+ val nextNotRescheduledAppointment = appointmentBackgrounds .create(
175164 dateTime = appointmentsDate.atTime(appointmentsBaseTime).plus(existingAppointmentDuration),
176165 timeZone = zoneId,
177166 duration = existingAppointmentDuration
178167 )
179168 val rescheduleAppointmentRequest = nextNotRescheduledAppointment.copy(dateTime = existingAppointment.dateTime)
180169 .toEditRequest(timeZones::findById)
181170
182- val therapist = TherapistClient .loginAsTheTherapist()
183-
184171 // Действие
185- val document = therapist .appointments.editAppointmentForError(
172+ val document = theTherapist .appointments.editAppointmentForError(
186173 nextNotRescheduledAppointment.ref(),
187174 rescheduleAppointmentRequest
188175 )
@@ -192,18 +179,17 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
192179 document shouldHave EditAppointmentForm .formPrefilledWith(rescheduleAppointmentRequest)
193180 document shouldHaveElement CreateAppointmentForm .appointmentsIntersectionErrorMessage
194181
195- val storedNextAppointment = backgrounds.appointments .findById(nextNotRescheduledAppointment.id)!!
182+ val storedNextAppointment = appointmentBackgrounds .findById(nextNotRescheduledAppointment.id)!!
196183 storedNextAppointment shouldMatch nextNotRescheduledAppointment
197184 }
198185
199186 @Test
200187 fun `Удаление записи на прием должно быть постоянным и перенаправлять на указанный календарный день` () {
201188 // Сетап
202- val appointment = backgrounds.appointments.create()
203- val therapist = TherapistClient .loginAsTheTherapist()
189+ val appointment = appointmentBackgrounds.create()
204190
205191 // Действие
206- val response = therapist .appointments.delete(appointment.ref(), appointment.wallClockDateTime.toLocalDate())
192+ val response = theTherapist .appointments.delete(appointment.ref(), appointment.wallClockDateTime.toLocalDate())
207193
208194 // Проверка
209195 response.statusCode shouldBe HttpStatus .OK .value()
@@ -212,18 +198,16 @@ class EditAppointmentPageTest : QYogaAppIntegrationBaseTest() {
212198 appointment.wallClockDateTime.toLocalDate().toString()
213199 )
214200
215- backgrounds.appointments .getDaySchedule(appointment.wallClockDateTime.toLocalDate()).shouldBeEmpty()
201+ appointmentBackgrounds .getDaySchedule(appointment.wallClockDateTime.toLocalDate()).shouldBeEmpty()
216202 }
217203
218204 @Test
219205 fun `Запись на прием со статусом 'Клиент пришел' должна отображаться корректно` () {
220206 // Сетап
221- val appointment = backgrounds.appointments.create(appointmentStatus = AppointmentStatus .CLIENT_CAME )
222-
223- val therapist = TherapistClient .loginAsTheTherapist()
207+ val appointment = appointmentBackgrounds.create(appointmentStatus = AppointmentStatus .CLIENT_CAME )
224208
225209 // Действие
226- val document = therapist .appointments.getEditAppointmentPage(appointment.ref())
210+ val document = theTherapist .appointments.getEditAppointmentPage(appointment.ref())
227211
228212 // Проверка
229213 document shouldBePage EditAppointmentPage
0 commit comments