No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

680 líneas
24 KiB

  1. module.exports = {
  2. ParameterPrimitiveTestCases,
  3. RequestBodyPrimitiveTestCases,
  4. ResponsePrimitiveTestCases,
  5. }
  6. function ParameterPrimitiveTestCases({
  7. operationDomId,
  8. parameterName,
  9. exampleA, // { value, key }
  10. exampleB, // { value, key }
  11. exampleC,
  12. customUserInput,
  13. customExpectedUrlSubstring,
  14. }) {
  15. it("should render examples options without Modified Value by default", () => {
  16. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  17. .get(operationDomId)
  18. .click()
  19. .get(`tr[data-param-name="${parameterName}"]`)
  20. .find(".examples-select option")
  21. .should("have.length", exampleC ? 3 : 2)
  22. // Ensure the relevant input is disabled
  23. .get(
  24. `tr[data-param-name="${parameterName}"] input, tr[data-param-name="${parameterName}"] textarea`
  25. )
  26. .should("have.attr", "disabled")
  27. // Switch to Try-It-Out
  28. .get(".try-out__btn")
  29. .click()
  30. .get(`.opblock-section-request-body`)
  31. .find(".examples-select option")
  32. .should("have.length", exampleC ? 3 : 2)
  33. })
  34. it("should set default static and Try-It-Out values based on the first member", () => {
  35. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  36. // Expand the operation
  37. .get(operationDomId)
  38. .click()
  39. // Assert on the static docs value
  40. .get(
  41. `tr[data-param-name="${parameterName}"] input,tr[data-param-name="${parameterName}"] textarea`
  42. )
  43. .should("have.value", exampleA.value)
  44. // Switch to Try-It-Out
  45. .get(".try-out__btn")
  46. .click()
  47. // Assert on the Try-It-Out value
  48. .get(
  49. `tr[data-param-name="${parameterName}"] input,tr[data-param-name="${parameterName}"] textarea`
  50. )
  51. .should("have.value", exampleA.value)
  52. // Execute the operation
  53. .get(".execute")
  54. .click()
  55. // Assert on the request URL
  56. .get(".request-url")
  57. .contains(
  58. exampleA.serializedValue || `?message=${escape(exampleA.value)}`
  59. )
  60. })
  61. it("should set static and Try-It-Out values based on the second member", () => {
  62. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  63. // Expand the operation
  64. .get(operationDomId)
  65. .click()
  66. // Choose the second example
  67. .get("table.parameters .examples-select > select")
  68. .select(exampleB.key)
  69. // Assert on the static docs value
  70. .get(
  71. `tr[data-param-name="${parameterName}"] input,tr[data-param-name="${parameterName}"] textarea`
  72. )
  73. .should("have.value", exampleB.value)
  74. // Switch to Try-It-Out
  75. .get(".try-out__btn")
  76. .click()
  77. // Assert on the Try-It-Out value
  78. .get(
  79. `tr[data-param-name="${parameterName}"] input,tr[data-param-name="${parameterName}"] textarea`
  80. )
  81. .should("have.value", exampleB.value)
  82. // Execute the operation
  83. .get(".execute")
  84. .click()
  85. // Assert on the request URL
  86. .get(".request-url")
  87. .contains(
  88. exampleB.serializedValue
  89. ? `?${exampleB.serializedValue}`
  90. : `?message=${escape(exampleB.value)}`
  91. )
  92. })
  93. it("should handle user-entered values correctly", () => {
  94. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  95. // Expand the operation
  96. .get(operationDomId)
  97. .click()
  98. // Switch to Try-It-Out
  99. .get(".try-out__btn")
  100. .click()
  101. // Modify the input value
  102. .get(
  103. `tr[data-param-name="${parameterName}"] input,tr[data-param-name="${parameterName}"] textarea`
  104. )
  105. .clear()
  106. .type(customUserInput)
  107. // Assert on the active select menu item
  108. .get("table.parameters .examples-select > select")
  109. .find(":selected")
  110. .should("have.text", "[Modified value]")
  111. // Execute the operation
  112. .get(".execute")
  113. .click()
  114. // Assert on the request URL
  115. .get(".request-url")
  116. .contains(
  117. customExpectedUrlSubstring || `?message=${escape(customUserInput)}`
  118. )
  119. })
  120. it("should retain user-entered values correctly", () => {
  121. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  122. // Expand the operation
  123. .get(operationDomId)
  124. .click()
  125. // Switch to Try-It-Out
  126. .get(".try-out__btn")
  127. .click()
  128. // Modify the input value
  129. .get(
  130. `tr[data-param-name="${parameterName}"] input,tr[data-param-name="${parameterName}"] textarea`
  131. )
  132. .clear()
  133. .type(customUserInput)
  134. // Select the first example
  135. .get("table.parameters .examples-select > select")
  136. .select(exampleA.key)
  137. // Execute the operation
  138. .get(".execute")
  139. .click()
  140. // Assert on the request URL
  141. .get(".request-url")
  142. .contains(
  143. exampleA.serializedValue
  144. ? `?${exampleA.serializedValue}`
  145. : `?message=${escape(exampleA.value)}`
  146. )
  147. // Select the modified value
  148. .get("table.parameters .examples-select > select")
  149. .select("__MODIFIED__VALUE__")
  150. // Execute the operation
  151. .get(".execute")
  152. .click()
  153. // Assert on the request URL
  154. .get(".request-url")
  155. .contains(
  156. customExpectedUrlSubstring || `?message=${escape(customUserInput)}`
  157. )
  158. })
  159. }
  160. function RequestBodyPrimitiveTestCases({
  161. operationDomId,
  162. exampleA, // { value, key, summary }
  163. exampleB, // { value, key, summary }
  164. exampleC,
  165. customUserInput,
  166. customUserInputExpectedCurlSubstring,
  167. primaryMediaType = "text/plain",
  168. secondaryMediaType = "text/plain+other",
  169. }) {
  170. it("should render examples options without Modified Value by default", () => {
  171. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  172. .get(operationDomId)
  173. .click()
  174. .get(`.opblock-section-request-body`)
  175. .find(".examples-select option")
  176. .should("have.length", exampleC ? 3 : 2)
  177. // Switch to Try-It-Out
  178. .get(".try-out__btn")
  179. .click()
  180. .get(`.opblock-section-request-body`)
  181. .find(".examples-select option")
  182. .should("have.length", exampleC ? 3 : 2)
  183. })
  184. it("should set default static and Try-It-Out values based on the first member", () => {
  185. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  186. // Expand the operation
  187. .get(operationDomId)
  188. .click()
  189. // Assert on the static docs value
  190. .get(`.opblock-section-request-body .microlight`)
  191. .should("include.text", exampleA.value)
  192. // Switch to Try-It-Out
  193. .get(".try-out__btn")
  194. .click()
  195. // Assert on the Try-It-Out value
  196. .get(`.opblock-section-request-body textarea`)
  197. .should("have.value", exampleA.value)
  198. // Execute the operation
  199. .get(".execute")
  200. .click()
  201. // Assert on the curl body
  202. // TODO: use an interceptor instead of curl
  203. .get(".curl")
  204. .contains(`-d "${exampleA.serializedValue || exampleA.value}"`)
  205. })
  206. it("should set default static and Try-It-Out values based on choosing the second member in static mode", () => {
  207. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  208. // Expand the operation
  209. .get(operationDomId)
  210. .click()
  211. // Choose the second example
  212. .get(".opblock-section-request-body .examples-select > select")
  213. .select(exampleB.key)
  214. // Assert on the static docs value
  215. .get(`.opblock-section-request-body .microlight`)
  216. .should("include.text", exampleB.value)
  217. // Switch to Try-It-Out
  218. .get(".try-out__btn")
  219. .click()
  220. // Assert on the Try-It-Out value
  221. .get(`.opblock-section-request-body textarea`)
  222. .should("have.value", exampleB.value)
  223. // Execute the operation
  224. .get(".execute")
  225. .click()
  226. // Assert on the request URL
  227. // TODO: use an interceptor instead of curl
  228. .get(".curl")
  229. .contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
  230. })
  231. it("should set default static and Try-It-Out values based on choosing the second member in Try-It-Out mode", () => {
  232. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  233. // Expand the operation
  234. .get(operationDomId)
  235. .click()
  236. // Switch to Try-It-Out
  237. .get(".try-out__btn")
  238. .click()
  239. // Choose the second example
  240. .get(".opblock-section-request-body .examples-select > select")
  241. .select(exampleB.key)
  242. // Assert on the Try-It-Out value
  243. .get(`.opblock-section-request-body textarea`)
  244. .should("have.value", exampleB.value)
  245. // Execute the operation
  246. .get(".execute")
  247. .click()
  248. // Assert on the request URL
  249. // TODO: use an interceptor instead of curl
  250. .get(".curl")
  251. .contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
  252. // Switch to static docs
  253. .get(".try-out__btn")
  254. .click()
  255. // Assert on the static docs value
  256. .get(`.opblock-section-request-body .microlight`)
  257. .should("include.text", exampleB.value)
  258. })
  259. it("should return the dropdown entry for an example when manually returning to its value", () => {
  260. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  261. // Expand the operation
  262. .get(operationDomId)
  263. .click()
  264. // Assert on the static docs value
  265. .get(`.opblock-section-request-body .microlight`)
  266. .should("include.text", exampleA.value)
  267. // Switch to Try-It-Out
  268. .get(".try-out__btn")
  269. .click()
  270. // Assert on the Try-It-Out value
  271. .get(`.opblock-section-request-body textarea`)
  272. .should("have.value", exampleA.value)
  273. // Clear the Try-It-Out value, replace it with custom value
  274. .clear()
  275. .type(customUserInput)
  276. // Assert on the dropdown value
  277. .get(".opblock-section-request-body .examples-select > select")
  278. .find(":selected")
  279. .should("have.text", "[Modified value]")
  280. // Modify the value again, going back to the example value
  281. .get(`.opblock-section-request-body textarea`)
  282. .clear()
  283. .type(exampleA.value)
  284. // Assert on the dropdown value returning to the example value
  285. .get(".opblock-section-request-body .examples-select > select")
  286. .find(":selected")
  287. .should("include.text", exampleA.summary)
  288. })
  289. it("should retain choosing a member in static docs when changing the media type", () => {
  290. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  291. // Expand the operation
  292. .get(operationDomId)
  293. .click()
  294. // Choose the second example
  295. .get(".opblock-section-request-body .examples-select > select")
  296. .select(exampleB.key)
  297. // Change the media type
  298. .get(".opblock-section-request-body .content-type")
  299. .select(secondaryMediaType)
  300. // Assert on the static docs value
  301. .get(`.opblock-section-request-body .microlight`)
  302. .should("include.text", exampleB.value)
  303. // Switch to Try-It-Out
  304. .get(".try-out__btn")
  305. .click()
  306. // Assert on the Try-It-Out value
  307. .get(`.opblock-section-request-body textarea`)
  308. .should("have.value", exampleB.value)
  309. // Execute the operation
  310. .get(".execute")
  311. .click()
  312. // Assert on the request URL
  313. // TODO: use an interceptor instead of curl
  314. .get(".curl")
  315. .contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
  316. })
  317. it("should use the first example for the media type when changing the media type without prior interactions with the value", () => {
  318. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  319. // Expand the operation
  320. .get(operationDomId)
  321. .click()
  322. // Change the media type
  323. .get(".opblock-section-request-body .content-type")
  324. .select(secondaryMediaType)
  325. // Assert on the static docs value
  326. .get(`.opblock-section-request-body .microlight`)
  327. .should("include.text", exampleA.value)
  328. // Switch to Try-It-Out
  329. .get(".try-out__btn")
  330. .click()
  331. // Assert on the Try-It-Out value
  332. .get(`.opblock-section-request-body textarea`)
  333. .should("have.value", exampleA.value)
  334. // Execute the operation
  335. .get(".execute")
  336. .click()
  337. // Assert on the request URL
  338. // TODO: use an interceptor instead of curl
  339. .get(".curl")
  340. .contains(`-d "${exampleA.serializedValue || exampleA.value}"`)
  341. })
  342. it("static mode toggling: mediaType -> example -> mediaType -> example", () => {
  343. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  344. // Expand the operation
  345. .get(operationDomId)
  346. .click()
  347. // Change the media type
  348. .get(".opblock-section-request-body .content-type")
  349. .select(secondaryMediaType)
  350. // Assert on the static docs value
  351. .get(`.opblock-section-request-body .microlight`)
  352. .should("include.text", exampleA.value)
  353. // Assert on the dropdown value
  354. .get(".opblock-section-request-body .examples-select > select")
  355. .find(":selected")
  356. .should("include.text", exampleA.summary)
  357. // Choose exampleB
  358. .get(".opblock-section-request-body .examples-select > select")
  359. .select(exampleB.key)
  360. // Assert on the static docs value
  361. .get(`.opblock-section-request-body .microlight`)
  362. .should("include.text", exampleB.value)
  363. // Assert on the dropdown value
  364. .get(".opblock-section-request-body .examples-select > select")
  365. .find(":selected")
  366. .should("include.text", exampleB.summary)
  367. // Change the media type
  368. .get(".opblock-section-request-body .content-type")
  369. .select(primaryMediaType)
  370. // Assert that the static docs value didn't change
  371. .get(`.opblock-section-request-body .microlight`)
  372. .should("include.text", exampleB.value)
  373. // Assert that the dropdown value didn't change
  374. .get(".opblock-section-request-body .examples-select > select")
  375. .find(":selected")
  376. .should("include.text", exampleB.summary)
  377. // Choose exampleA
  378. .get(".opblock-section-request-body .examples-select > select")
  379. .select(exampleA.key)
  380. // Assert on the static docs value
  381. .get(`.opblock-section-request-body .microlight`)
  382. .should("include.text", exampleA.value)
  383. // Assert on the dropdown value
  384. .get(".opblock-section-request-body .examples-select > select")
  385. .find(":selected")
  386. .should("include.text", exampleA.summary)
  387. })
  388. it("Try-It-Out toggling: mediaType -> example -> mediaType -> example", () => {
  389. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  390. // Expand the operation
  391. .get(operationDomId)
  392. .click()
  393. // Switch to Try-It-Out
  394. .get(".try-out__btn")
  395. .click()
  396. // Change the media type
  397. .get(".opblock-section-request-body .content-type")
  398. .select(secondaryMediaType)
  399. // Assert on the static docs value
  400. .get(`.opblock-section-request-body textarea`)
  401. .should("include.text", exampleA.value)
  402. // Assert on the dropdown value
  403. .get(".opblock-section-request-body .examples-select > select")
  404. .find(":selected")
  405. .should("include.text", exampleA.summary)
  406. // Choose exampleB
  407. .get(".opblock-section-request-body .examples-select > select")
  408. .select(exampleB.key)
  409. // Assert on the static docs value
  410. .get(`.opblock-section-request-body textarea`)
  411. .should("include.text", exampleB.value)
  412. // Assert on the dropdown value
  413. .get(".opblock-section-request-body .examples-select > select")
  414. .find(":selected")
  415. .should("include.text", exampleB.summary)
  416. // Change the media type
  417. .get(".opblock-section-request-body .content-type")
  418. .select(primaryMediaType)
  419. // Assert that the static docs value didn't change
  420. .get(`.opblock-section-request-body textarea`)
  421. .should("include.text", exampleB.value)
  422. // Assert that the dropdown value didn't change
  423. .get(".opblock-section-request-body .examples-select > select")
  424. .find(":selected")
  425. .should("include.text", exampleB.summary)
  426. // Choose exampleA
  427. .get(".opblock-section-request-body .examples-select > select")
  428. .select(exampleA.key)
  429. // Assert on the static docs value
  430. .get(`.opblock-section-request-body textarea`)
  431. .should("include.text", exampleA.value)
  432. // Assert on the dropdown value
  433. .get(".opblock-section-request-body .examples-select > select")
  434. .find(":selected")
  435. .should("include.text", exampleA.summary)
  436. })
  437. it("Try-It-Out toggling and execution with modified values: mediaType -> modified value -> example -> mediaType -> example", () => {
  438. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  439. // Expand the operation
  440. .get(operationDomId)
  441. .click()
  442. // Switch to Try-It-Out
  443. .get(".try-out__btn")
  444. .click()
  445. // Change the media type
  446. .get(".opblock-section-request-body .content-type")
  447. .select(secondaryMediaType)
  448. // Assert on the static docs value
  449. .get(`.opblock-section-request-body textarea`)
  450. .should("include.text", exampleA.value)
  451. // Assert on the dropdown value
  452. .get(".opblock-section-request-body .examples-select > select")
  453. .find(":selected")
  454. .should("include.text", exampleA.summary)
  455. // Modify the value
  456. .get(`.opblock-section-request-body textarea`)
  457. .clear()
  458. .type(customUserInput)
  459. // Assert on the dropdown value
  460. .get(".opblock-section-request-body .examples-select > select")
  461. .find(":selected")
  462. .should("have.text", "[Modified value]")
  463. // Fire the operation
  464. .get(".execute")
  465. .click()
  466. // Assert on the curl body
  467. // TODO: use an interceptor instead of curl
  468. .get(".curl")
  469. .contains(
  470. `-d "${customUserInputExpectedCurlSubstring || customUserInput}"`
  471. )
  472. // Choose exampleB
  473. .get(".opblock-section-request-body .examples-select > select")
  474. .select(exampleB.key)
  475. // Assert on the static docs value
  476. .get(`.opblock-section-request-body textarea`)
  477. .should("include.text", exampleB.value)
  478. // Assert on the dropdown value
  479. .get(".opblock-section-request-body .examples-select > select")
  480. .find(":selected")
  481. .should("include.text", exampleB.summary)
  482. // Fire the operation
  483. .get(".execute")
  484. .click()
  485. // Assert on the curl body
  486. // TODO: use an interceptor instead of curl
  487. .get(".curl")
  488. .contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
  489. // Ensure the modified value is still accessible
  490. .get(".opblock-section-request-body .examples-select > select")
  491. .contains("[Modified value]")
  492. // Change the media type to text/plain
  493. .get(".opblock-section-request-body .content-type")
  494. .select(primaryMediaType)
  495. // Assert that the static docs value didn't change
  496. .get(`.opblock-section-request-body textarea`)
  497. .should("include.text", exampleB.value)
  498. // Assert that the dropdown value didn't change
  499. .get(".opblock-section-request-body .examples-select > select")
  500. .find(":selected")
  501. .should("include.text", exampleB.summary)
  502. // Fire the operation
  503. .get(".execute")
  504. .click()
  505. // Assert on the curl body
  506. // TODO: use an interceptor instead of curl
  507. .get(".curl")
  508. .contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
  509. // Ensure the modified value is still accessible
  510. .get(".opblock-section-request-body .examples-select > select")
  511. .contains("[Modified value]")
  512. // Choose exampleA
  513. .get(".opblock-section-request-body .examples-select > select")
  514. .select(exampleA.key)
  515. // Assert on the static docs value
  516. .get(`.opblock-section-request-body textarea`)
  517. .should("include.text", exampleA.value)
  518. // Assert on the dropdown value
  519. .get(".opblock-section-request-body .examples-select > select")
  520. .find(":selected")
  521. .should("include.text", exampleA.summary)
  522. // Fire the operation
  523. .get(".execute")
  524. .click()
  525. // Assert on the curl body
  526. // TODO: use an interceptor instead of curl
  527. .get(".curl")
  528. .contains(`-d "${exampleA.serializedValue || exampleA.value}"`)
  529. // Ensure the modified value is still the same value
  530. .get(".opblock-section-request-body .examples-select > select")
  531. .select("__MODIFIED__VALUE__")
  532. // Assert on the static docs value
  533. .get(`.opblock-section-request-body textarea`)
  534. .should("have.text", customUserInput.replace(/{{}/g, "{"))
  535. // Assert on the dropdown value
  536. .get(".opblock-section-request-body .examples-select > select")
  537. .find(":selected")
  538. .should("have.text", "[Modified value]")
  539. // Fire the operation
  540. .get(".execute")
  541. .click()
  542. // Assert on the curl body
  543. // TODO: use an interceptor instead of curl
  544. .get(".curl")
  545. .contains(
  546. `-d "${customUserInputExpectedCurlSubstring || customUserInput}"`
  547. )
  548. })
  549. // TODO: Try-It-Out + Try-It-Out media type changes
  550. }
  551. function ResponsePrimitiveTestCases({
  552. operationDomId,
  553. exampleA, // { value, key, summary }
  554. exampleB, // { value, key, summary }
  555. exampleC, // { value, key, summary }
  556. }) {
  557. it("should render the first example by default", () => {
  558. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  559. .get(operationDomId)
  560. .click()
  561. .get(".responses-wrapper")
  562. .within(() => {
  563. cy.get(".examples-select > select")
  564. .find(":selected")
  565. .should("include.text", exampleA.summary)
  566. .get(".microlight")
  567. .should("include.text", exampleA.value)
  568. })
  569. })
  570. it("should render the second example", () => {
  571. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  572. .get(operationDomId)
  573. .click()
  574. .get(".responses-wrapper")
  575. .within(() => {
  576. cy.get(".examples-select > select")
  577. .select(exampleB.key)
  578. .find(":selected")
  579. .should("include.text", exampleB.summary)
  580. .get(".microlight")
  581. .should("include.text", exampleB.value)
  582. })
  583. })
  584. it("should retain an example choice across media types if they share the same example", () => {
  585. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  586. .get(operationDomId)
  587. .click()
  588. .get(".responses-wrapper")
  589. .within(() => {
  590. cy
  591. // Change examples
  592. .get(".examples-select > select")
  593. .select(exampleB.key)
  594. // Assert against dropdown value
  595. .find(":selected")
  596. .should("include.text", exampleB.summary)
  597. // Assert against example value
  598. .get(".microlight")
  599. .should("include.text", exampleB.value)
  600. // Change media types
  601. .get(".content-type")
  602. .select("text/plain+other")
  603. // Assert against dropdown value
  604. .get(".examples-select > select")
  605. .find(":selected")
  606. .should("include.text", exampleB.summary)
  607. // Assert against example value
  608. .get(".microlight")
  609. .should("include.text", exampleB.value)
  610. })
  611. })
  612. ;(exampleC ? it : it.skip)(
  613. "should reset to the first example if the new media type lacks the current example",
  614. () => {
  615. cy.visit("/?url=/documents/features/multiple-examples-core.openapi.yaml")
  616. .get(operationDomId)
  617. .click()
  618. .get(".responses-wrapper")
  619. .within(() => {
  620. cy
  621. // Change media types
  622. .get(".content-type")
  623. .select("text/plain+other")
  624. // Change examples
  625. .get(".examples-select > select")
  626. .select(exampleC.key)
  627. // Assert against dropdown value
  628. .find(":selected")
  629. .should("include.text", exampleC.summary || exampleC.key)
  630. // Assert against example value
  631. .get(".microlight")
  632. .should("include.text", exampleC.value)
  633. // Change media types
  634. .get(".content-type")
  635. .select("text/plain")
  636. // Assert against dropdown value
  637. .get(".examples-select > select")
  638. .find(":selected")
  639. .should("include.text", exampleA.summary)
  640. // Assert against example value
  641. .get(".microlight")
  642. .should("include.text", exampleA.value)
  643. })
  644. }
  645. )
  646. }