|
48 | 48 | find(".ai-artifact__click-to-run button").click |
49 | 49 |
|
50 | 50 | artifact_element_selector = ".ai-artifact[data-ai-artifact-id='#{ai_artifact.id}']" |
51 | | - iframe_selector = "#{artifact_element_selector} iframe" |
| 51 | + artifact_element = find(artifact_element_selector) |
52 | 52 |
|
53 | | - expect(page).to have_css(iframe_selector) |
54 | | - |
55 | | - iframe_element = find(iframe_selector) |
56 | | - expect(iframe_element["data-custom-message"]).to eq("hello-from-post") |
57 | | - expect(iframe_element["data-post-author-id"]).to eq(author.id.to_s) |
| 53 | + expect(artifact_element).to have_css("iframe[data-custom-message='hello-from-post']") |
| 54 | + expect(artifact_element).to have_css("iframe[data-post-author-id='#{author.id}']") |
58 | 55 |
|
59 | 56 | # note: artifacts are within nested iframes for security reasons |
60 | | - page.within_frame(iframe_element) do |
| 57 | + iframe_element = artifact_element.find("iframe") |
| 58 | + within_frame(iframe_element) do |
61 | 59 | inner_iframe = find("iframe") |
62 | | - page.within_frame(inner_iframe) do |
63 | | - data_display_element = find("#data-display") |
64 | | - |
65 | | - expect(data_display_element.text).not_to be_empty |
66 | | - expect(data_display_element.text).not_to eq("Waiting for data...") |
67 | | - expect(data_display_element.text).not_to include("Error:") |
| 60 | + within_frame(inner_iframe) do |
| 61 | + data_selector = "#data-display" |
| 62 | + expect(page).to have_selector(data_selector, text: /.+/) |
| 63 | + expect(page).to have_no_selector(data_selector, text: "Waiting for data...") |
| 64 | + expect(page).to have_no_selector(data_selector, text: "Error:") |
68 | 65 |
|
69 | | - artifact_data_json = data_display_element.text |
| 66 | + artifact_data_json = find(data_selector).text |
70 | 67 | artifact_data = JSON.parse(artifact_data_json) |
71 | 68 |
|
72 | 69 | expect(artifact_data["customMessage"]).to eq("hello-from-post") |
73 | 70 | expect(artifact_data["postAuthorId"]).to eq(author.id.to_s) |
74 | | - |
75 | 71 | expect(artifact_data["username"]).to eq(user.username) |
76 | 72 | end |
77 | 73 | end |
|
0 commit comments