History

Update Photos preset spec for the multi-select flow

The Photos flow now initializes the fan-out picker with both Photos products checked, so there is no single-integration name/namespace form. Assert the checked presets, the scope count, and the preset-identity settings copy instead.

Rhys Sullivan committed 4 months ago

Commit fd295f21 parent e0009531 file · +31 −6Browse files

Unified · Split

e2e/scenarios/google-photos-preset-ui.test.ts+31−6
@@ -29,14 +29,39 @@ scenario( · 28 unmodified lines
2929 await page.getByRole("heading", { name: "Add Google integration" }).waitFor();
3030 });
3131
32− await step("The Photos preset defaults to the focused namespace and products", async () => {
33− await page.locator('input[value="Google Photos"]').waitFor();
34− await page.locator('input[value="google_photos"]').waitFor();
35− await page.getByText("Google Photos Library").first().waitFor();
36− await page.getByText("Google Photos Picker").first().waitFor();
37− await page.getByText("2 Google APIs").waitFor();
32+ await step("The Photos preset pre-checks both Photos products for fan-out", async () => {
33+ // The focused flow initializes the multi-select picker with exactly
34+ // the two Photos presets checked; each is added as its own
35+ // integration on submit.
36+ const library = page.getByRole("checkbox", { name: /Google Photos Library/ });
37+ const picker = page.getByRole("checkbox", { name: /Google Photos Picker/ });
38+ await library.waitFor();
39+ await picker.waitFor();
40+ expect(await library.isChecked()).toBe(true);
41+ expect(await picker.isChecked()).toBe(true);
42+ // Other products stay unchecked: the flow is Photos-scoped, not the
43+ // featured default selection.
44+ expect(await page.getByRole("checkbox", { name: /Google Calendar/ }).isChecked()).toBe(
45+ false,
46+ );
47+ // The scope preview counts exactly the two checked Photos products.
48+ await page.getByRole("button", { name: /^View scopes 2$/ }).waitFor();
49+ });
50+
51+ await step("Multi-select keeps preset identities: no name/namespace form", async () => {
52+ // With two products checked there is no single-integration identity
53+ // form; the settings section spells out that presets keep their own
54+ // names and namespaces.
55+ await page.getByText("Google product settings").waitFor();
56+ await page.getByText("Selected products keep their preset names and namespaces.").waitFor();
57+ expect(await page.locator('input[value="Google Photos"]').count()).toBe(0);
58+ expect(await page.locator('input[value="google_photos"]').count()).toBe(0);
3859 expect(await page.locator('input[value="Google"]').count()).toBe(0);
3960 expect(await page.locator('input[value="google"]').count()).toBe(0);
61+ // The submit button is armed for the checked selection.
62+ const connect = page.getByRole("button", { name: "Connect Google" });
63+ await connect.waitFor();
64+ expect(await connect.isEnabled()).toBe(true);
4065 });
4166 });
4267 }),