Commit 3be3b4d26afe169260bd1c758795e34f1aa917d3
1 parent
99931a20
Refactor test code, add few new tests
Showing
3 changed files
with
75 additions
and
80 deletions
| ... | ... | @@ -14,60 +14,56 @@ ${locator.minimalStep.amount} xpath=//td[./text()='Крок зменшеР|
| 14 | 14 | ${locator.enquiryPeriod.endDate} xpath=//td[./text()='Завершення періоду обговорення']/following-sibling::td[1] |
| 15 | 15 | ${locator.tenderPeriod.endDate} xpath=//td[./text()='Завершення періоду прийому пропозицій']/following-sibling::td[1] |
| 16 | 16 | ${locator.items[0].deliveryAddress.countryName} xpath=//td[@class='nameField'][./text()='Адреса поставки']/following-sibling::td[1] |
| 17 | -${locator.items[0].deliveryDate} xpath=//td[./text()='Кінцева дата поставки']/following-sibling::td[1] | |
| 18 | -${locator.items[0].classification.scheme} xpath=//td[@class = 'nameField'][./text()='Клас CPV'] | |
| 19 | -${locator.items[0].classification.id} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[1] | |
| 20 | -${locator.items[0].classification.description} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[2] | |
| 17 | +${locator.items[0].deliveryDate} xpath=//td[./text()='Кінцева дата поставки']/following-sibling::td[1] | |
| 18 | +${locator.items[0].classification.scheme} xpath=//td[@class = 'nameField'][./text()='Клас CPV'] | |
| 21 | 19 | ${locator.items[0].additionalClassifications[0].scheme} xpath=//td[@class = 'nameField'][./text()='Клас ДКПП'] |
| 22 | -${locator.items[0].additionalClassifications[0].id} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[1] | |
| 23 | -${locator.items[0].additionalClassifications[0].description} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[2] | |
| 24 | 20 | |
| 25 | 21 | *** Keywords *** |
| 26 | 22 | Підготувати клієнт для користувача |
| 27 | 23 | [Arguments] @{ARGUMENTS} |
| 28 | - [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо | |
| 24 | + [Documentation] Відкрити брaузер, створити обєкт api wrapper, тощо | |
| 29 | 25 | ... ${ARGUMENTS[0]} == username |
| 30 | 26 | Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]} |
| 31 | 27 | Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} |
| 32 | 28 | Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} |
| 33 | - Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]} | |
| 34 | - Wait Until Page Contains Element jquery=a[href="/cabinet"] | |
| 35 | - Click Element jquery=a[href="/cabinet"] | |
| 36 | - Run Keyword If '${username}' != 'Netcast_Viewer' Login | |
| 29 | + Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]} | |
| 30 | + Wait Until Page Contains Element jquery=a[href="/cabinet"] | |
| 31 | + Click Element jquery=a[href="/cabinet"] | |
| 32 | + Run Keyword If '${username}' != 'Netcast_Viewer' Login | |
| 37 | 33 | |
| 38 | 34 | Login |
| 39 | 35 | [Arguments] @{ARGUMENTS} |
| 40 | - Wait Until Page Contains Element name=email 10 | |
| 36 | + Wait Until Page Contains Element name=email 10 | |
| 41 | 37 | Sleep 1 |
| 42 | - Input text name=email ${USERS.users['${username}'].login} | |
| 38 | + Input text name=email ${USERS.users['${username}'].login} | |
| 43 | 39 | Sleep 2 |
| 44 | - Input text name=psw ${USERS.users['${username}'].password} | |
| 45 | - Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100 | |
| 46 | - Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] | |
| 40 | + Input text name=psw ${USERS.users['${username}'].password} | |
| 41 | + Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 20 | |
| 42 | + Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] | |
| 47 | 43 | |
| 48 | 44 | Pre Login |
| 49 | 45 | [Arguments] @{ARGUMENTS} |
| 50 | 46 | [Documentation] |
| 51 | 47 | ... ${ARGUMENTS[0]} == username |
| 52 | 48 | Wait Until Page Contains Element name=siteLogin 10 |
| 53 | - Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login} | |
| 54 | - Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password} | |
| 55 | - Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | |
| 49 | + Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login} | |
| 50 | + Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password} | |
| 51 | + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | |
| 56 | 52 | |
| 57 | 53 | Створити тендер |
| 58 | 54 | [Arguments] @{ARGUMENTS} |
| 59 | 55 | [Documentation] |
| 60 | 56 | ... ${ARGUMENTS[0]} == username |
| 61 | 57 | ... ${ARGUMENTS[1]} == tender_data |
| 62 | - ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]} | |
| 63 | - ${items}= Get From Dictionary ${tender_data.data} items | |
| 64 | - ${title}= Get From Dictionary ${tender_data.data} title | |
| 65 | - ${description}= Get From Dictionary ${tender_data.data} description | |
| 66 | - ${budget}= Get From Dictionary ${tender_data.data.value} amount | |
| 67 | - ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount | |
| 68 | - ${items_description}= Get From Dictionary ${tender_data.data} description | |
| 58 | + #{tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]} | |
| 59 | + ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | |
| 60 | + ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | |
| 61 | + ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | |
| 62 | + ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | |
| 63 | + ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | |
| 64 | + ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description | |
| 69 | 65 | ${quantity}= Get From Dictionary ${items[0]} quantity |
| 70 | - ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName | |
| 66 | + ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName | |
| 71 | 67 | ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate |
| 72 | 68 | ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} |
| 73 | 69 | ${cpv}= Get From Dictionary ${items[0].classification} description_ua |
| ... | ... | @@ -76,9 +72,9 @@ Pre Login |
| 76 | 72 | ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description |
| 77 | 73 | ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id |
| 78 | 74 | ${dkpp_id1}= Replace String ${dkpp_id} - _ |
| 79 | - ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate | |
| 75 | + ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | |
| 80 | 76 | ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} |
| 81 | - ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate | |
| 77 | + ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | |
| 82 | 78 | ${end_date}= convert_date_to_slash_format ${end_date} |
| 83 | 79 | |
| 84 | 80 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} |
| ... | ... | @@ -205,7 +201,6 @@ Set Multi Ids |
| 205 | 201 | ... ${ARGUMENTS[0]} == username |
| 206 | 202 | ... ${ARGUMENTS[1]} == tenderId |
| 207 | 203 | Switch browser ${ARGUMENTS[0]} |
| 208 | - | |
| 209 | 204 | Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} |
| 210 | 205 | Wait Until Page Contains Держзакупівлі.онлайн 10 |
| 211 | 206 | Click Element xpath=//a[text()='Закупівлі'] |
| ... | ... | @@ -213,7 +208,7 @@ Set Multi Ids |
| 213 | 208 | Click Element xpath=//select[@name='filter[object]']/option[@value='tenderID'] |
| 214 | 209 | Input text xpath=//input[@name='filter[search]'] ${ARGUMENTS[1]} |
| 215 | 210 | Click Element xpath=//button[@class='btn'][./text()='Пошук'] |
| 216 | - Wait Until Page Contains ${ARGUMENTS[1]} 10 | |
| 211 | + Wait Until Page Contains ${ARGUMENTS[1]} 10 | |
| 217 | 212 | Capture Page Screenshot |
| 218 | 213 | sleep 1 |
| 219 | 214 | Click Element xpath=//a[@class='reverse tenderLink'] |
| ... | ... | @@ -227,6 +222,7 @@ Set Multi Ids |
| 227 | 222 | ${title}= Get From Dictionary ${ARGUMENTS[2].data} title |
| 228 | 223 | ${description}= Get From Dictionary ${ARGUMENTS[2].data} description |
| 229 | 224 | |
| 225 | + | |
| 230 | 226 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} |
| 231 | 227 | netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
| 232 | 228 | |
| ... | ... | @@ -279,11 +275,31 @@ Set Multi Ids |
| 279 | 275 | Wait Until Page Contains ${complaint} 30 |
| 280 | 276 | Capture Page Screenshot |
| 281 | 277 | |
| 282 | -Внести зміни в тендер | |
| 278 | +Порівняти скаргу | |
| 283 | 279 | [Arguments] @{ARGUMENTS} |
| 284 | 280 | [Documentation] |
| 285 | 281 | ... ${ARGUMENTS[0]} = username |
| 286 | 282 | ... ${ARGUMENTS[1]} = tenderUaId |
| 283 | + ... ${ARGUMENTS[2]} = complaintsData | |
| 284 | + ${complaint}= Get From Dictionary ${ARGUMENTS[2].data} title | |
| 285 | + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | |
| 286 | + | |
| 287 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
| 288 | + netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
| 289 | + sleep 1 | |
| 290 | + Click Element xpath=//a[@class='reverse openCPart'][span[text()='Скарги']] | |
| 291 | + Wait Until Page Contains ${complaint} 30 | |
| 292 | + Capture Page Screenshot | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | +Внести зміни в тендер | |
| 297 | + # Тест написано для уже існуючого тендеру, що знаходиться у чернетках користувача | |
| 298 | + [Arguments] @{ARGUMENTS} | |
| 299 | + [Documentation] | |
| 300 | + ... ${ARGUMENTS[0]} = username | |
| 301 | + ... ${ARGUMENTS[1]} = description | |
| 302 | + | |
| 287 | 303 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} |
| 288 | 304 | Click Element xpath=//a[@class='reverse'][./text()='Мої закупівлі'] |
| 289 | 305 | Wait Until Page Contains Element xpath=//a[@class='reverse'][./text()='Чернетки'] 30 |
| ... | ... | @@ -293,10 +309,10 @@ Set Multi Ids |
| 293 | 309 | sleep 1 |
| 294 | 310 | Click Element xpath=//a[@class='button save'][./text()='Редагувати'] |
| 295 | 311 | sleep 1 |
| 296 | - Input text name=tender_title "Some new title" | |
| 312 | + Input text name=tender_title ${ARGUMENTS[1]} | |
| 297 | 313 | sleep 1 |
| 298 | 314 | Click Element xpath=//button[@class='saveDraft'] |
| 299 | - Wait Until Page Contains "Some new title" 30 | |
| 315 | + Wait Until Page Contains ${ARGUMENTS[1]} 30 | |
| 300 | 316 | Capture Page Screenshot |
| 301 | 317 | |
| 302 | 318 | отримати інформацію із тендера |
| ... | ... | @@ -305,9 +321,7 @@ Set Multi Ids |
| 305 | 321 | ... ${ARGUMENTS[0]} == username |
| 306 | 322 | ... ${ARGUMENTS[1]} == fieldname |
| 307 | 323 | Switch browser ${ARGUMENTS[0]} |
| 308 | - | |
| 309 | 324 | ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]} |
| 310 | - log ${return_value} | |
| 311 | 325 | [return] ${return_value} |
| 312 | 326 | |
| 313 | 327 | отримати тест із поля і показати на сторінці |
| ... | ... | @@ -330,12 +344,12 @@ Set Multi Ids |
| 330 | 344 | |
| 331 | 345 | отримати інформацію про value.amount |
| 332 | 346 | ${valueAmount}= отримати тест із поля і показати на сторінці value.amount |
| 333 | - ${valueAmount}= Evaluate "".join("${valueAmount}".split(' ')[:-3]) | |
| 334 | - ${valueAmount}= Convert To Number ${valueAmount} | |
| 347 | + ${valueAmount}= Convert To Number ${valueAmount.split(' ')[0]} | |
| 335 | 348 | [return] ${valueAmount} |
| 336 | 349 | |
| 337 | 350 | отримати інформацію про minimalStep.amount |
| 338 | - ${minimalStepAamount}= отримати тест із поля і показати на сторінці minimalStep.amount | |
| 351 | + ${minimalStepAmount}= отримати тест із поля і показати на сторінці minimalStep.amount | |
| 352 | + ${minimalStepAmount}= Convert To Number ${minimalStepAmount.split(' ')[0]} | |
| 339 | 353 | [return] ${minimalStepAmount} |
| 340 | 354 | |
| 341 | 355 | отримати інформацію про enquiryPeriod.endDate |
| ... | ... | @@ -343,35 +357,17 @@ Set Multi Ids |
| 343 | 357 | [return] ${enquiryPeriodEndDate} |
| 344 | 358 | |
| 345 | 359 | отримати інформацію про tenderPeriod.endDate |
| 346 | - ${enquiryPeriodEndDate}= отримати тест із поля і показати на сторінці tenderPeriod.endDate | |
| 347 | - [return] ${enquiryPeriodEndDate} | |
| 360 | + ${tenderPeriodEndDate}= отримати тест із поля і показати на сторінці tenderPeriod.endDate | |
| 361 | + [return] ${tenderPeriodEndDate} | |
| 348 | 362 | |
| 349 | 363 | отримати інформацію про items[0].deliveryAddress.countryName |
| 350 | - ${return_value}= отримати тест із поля і показати на сторінці items[0].deliveryAddress.countryName | |
| 351 | - [return] ${return_value} | |
| 364 | + ${countryName}= отримати тест із поля і показати на сторінці items[0].deliveryAddress.countryName | |
| 365 | + [return] ${countryName} | |
| 352 | 366 | |
| 353 | 367 | отримати інформацію про items[0].classification.scheme |
| 354 | - ${return_value}= отримати тест із поля і показати на сторінці items[0].classification.scheme | |
| 355 | - ${return_value}= Get Substring ${return_value} 5 | |
| 356 | - [return] ${return_value} | |
| 357 | - | |
| 358 | -отримати інформацію про items[0].classification.id | |
| 359 | -${return_value}= отримати тест із поля і показати на сторінці items[0].classification.id | |
| 360 | - [return] ${return_value} | |
| 361 | - | |
| 362 | -отримати інформацію про items[0].classification.description | |
| 363 | -${return_value}= отримати тест із поля і показати на сторінці items[0].classification.description | |
| 364 | - [return] ${return_value} | |
| 368 | + ${classificationScheme}= отримати тест із поля і показати на сторінці items[0].classification.scheme | |
| 369 | + [return] ${classificationScheme.split(' ')[1]} | |
| 365 | 370 | |
| 366 | 371 | отримати інформацію про items[0].additionalClassifications[0].scheme |
| 367 | - ${return_value}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].scheme | |
| 368 | - ${return_value}= Get Substring ${return_value} 5 | |
| 369 | - [return] ${return_value} | |
| 370 | - | |
| 371 | -отримати інформацію про items[0].additionalClassifications[0].id | |
| 372 | -${return_value}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].id | |
| 373 | - [return] ${return_value} | |
| 374 | - | |
| 375 | -отримати інформацію про items[0].additionalClassifications[0].description | |
| 376 | -${return_value}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].description | |
| 377 | - [return] ${return_value} | |
| \ No newline at end of file | ||
| 372 | + ${additionalClassificationsScheme}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].scheme | |
| 373 | + [return] ${additionalClassificationsScheme.split(' ')[1]} | |
| \ No newline at end of file | ... | ... |
| ... | ... | @@ -31,9 +31,9 @@ TestSuiteSetup |
| 31 | 31 | Set Global Variable ${USERS} |
| 32 | 32 | ${users_list}= Get Dictionary Items ${USERS.users} |
| 33 | 33 | :FOR ${username} ${user_data} IN @{users_list} |
| 34 | - \ log ${active_users} | |
| 34 | + \ log ${active_users} | |
| 35 | 35 | \ log ${username} |
| 36 | - \ ${status}= Run Keyword And Return Status List Should Contain Value ${active_users} ${username} | |
| 36 | + \ ${status}= Run Keyword And Return Status List Should Contain Value ${active_users} ${username} | |
| 37 | 37 | \ Run Keyword If '${status}' == 'True' Завантажуємо бібліотеку з реалізацією ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file} площадки |
| 38 | 38 | \ Run Keyword If '${status}' == 'True' Викликати для учасника ${username} Підготувати клієнт для користувача |
| 39 | 39 | |
| ... | ... | @@ -56,7 +56,7 @@ TestSuiteSetup |
| 56 | 56 | Set Global Variable ${REPLIES} |
| 57 | 57 | ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode} |
| 58 | 58 | Set Global Variable ${INITIAL_TENDER_DATA} |
| 59 | - ${TENDER}= Create Dictionary | |
| 59 | + ${TENDER}= Create Dictionary | |
| 60 | 60 | Set Global Variable ${TENDER} |
| 61 | 61 | Log ${TENDER} |
| 62 | 62 | Log ${INITIAL_TENDER_DATA} |
| ... | ... | @@ -83,8 +83,8 @@ TestSuiteSetup |
| 83 | 83 | ${field_value}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field} |
| 84 | 84 | Звірити поле ${username} ${field} ${field_value} |
| 85 | 85 | |
| 86 | -Звірити поле | |
| 87 | - [Arguments] ${username} ${field} ${subject} | |
| 86 | +Звірити поле | |
| 87 | + [Arguments] ${username} ${field} ${subject} | |
| 88 | 88 | ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field} |
| 89 | 89 | Should Not Be Equal ${field_response} ${None} |
| 90 | 90 | Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker} |
| ... | ... | @@ -104,13 +104,13 @@ TestSuiteSetup |
| 104 | 104 | Звірити дату ${username} ${field} ${isodate} |
| 105 | 105 | |
| 106 | 106 | Звірити дату |
| 107 | - [Arguments] ${username} ${field} ${subject} | |
| 107 | + [Arguments] ${username} ${field} ${subject} | |
| 108 | 108 | ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field} |
| 109 | 109 | ${returned}= compare_date ${subject} ${field_date} |
| 110 | 110 | Should Not Be Equal ${field_date} ${None} |
| 111 | 111 | Should Not Be Equal ${returned} ${None} |
| 112 | - Should Be True '${returned}' == 'True' | |
| 113 | - | |
| 112 | + Should Be True '${returned}' == 'True' | |
| 113 | + | |
| 114 | 114 | Звірити поля предметів закупівлі багатопредметного тендера |
| 115 | 115 | [Arguments] ${username} ${field} |
| 116 | 116 | Дочекатись синхронізації з майданчиком ${username} |
| ... | ... | @@ -128,10 +128,10 @@ TestSuiteSetup |
| 128 | 128 | :FOR ${index} IN RANGE ${len_of_items} |
| 129 | 129 | \ Log ${index} |
| 130 | 130 | \ Звірити дату тендера ${viewer} items[${index}].${field} |
| 131 | - | |
| 131 | + | |
| 132 | 132 | Викликати для учасника |
| 133 | 133 | [Documentation] |
| 134 | - ... cause sometimes keyword SHOULD fail to pass the testcase, this keyword takes "shouldfail" argument as first one in @{arguments} and switches the behaviour of keyword and "shouldfail" | |
| 134 | + ... cause sometimes keyword SHOULD fail to pass the testcase, this keyword takes "shouldfail" argument as first one in @{arguments} and switches the behaviour of keyword and "shouldfail" | |
| 135 | 135 | [Arguments] ${username} ${command} @{arguments} |
| 136 | 136 | log ${username} |
| 137 | 137 | log ${command} |
| ... | ... | @@ -159,7 +159,7 @@ switchsate |
| 159 | 159 | ${status} ${value}= run_keyword_and_ignore_keyword_definations ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments} |
| 160 | 160 | Run keyword if '${status}' == 'PASS' Log Учасник ${username} зміг виконати "${command}" WARN |
| 161 | 161 | [return] ${value} |
| 162 | - | |
| 162 | + | |
| 163 | 163 | Дочекатись дати |
| 164 | 164 | [Arguments] ${date} |
| 165 | 165 | ${wait_timout}= wait_to_date ${date} |
| ... | ... | @@ -167,12 +167,12 @@ switchsate |
| 167 | 167 | |
| 168 | 168 | Дочекатись дати початоку прийому пропозицій |
| 169 | 169 | Дочекатись дати ${TENDER_DATA.data.tenderPeriod.startDate} |
| 170 | - | |
| 170 | + | |
| 171 | 171 | Дочекатись дати закінчення прийому пропозицій |
| 172 | 172 | Дочекатись дати ${TENDER_DATA.data.tenderPeriod.endDate} |
| 173 | - | |
| 173 | + | |
| 174 | 174 | Дочекатись дати початоку аукціону |
| 175 | 175 | Дочекатись дати ${TENDER_DATA.data.auctionPeriod.startDate} |
| 176 | 176 | |
| 177 | 177 | Дочекатись дати закінчення аукціону |
| 178 | - Дочекатись дати ${TENDER_DATA.data.auctionPeriod.endDate} | |
| \ No newline at end of file | ||
| 178 | + Дочекатись дати ${TENDER_DATA.data.auctionPeriod.endDate} | |
| \ No newline at end of file | ... | ... |
Please
register
or
login
to post a comment