Skip to content

Remove browser dependencies from E2E test cases - #8947

Open
isaacroldan wants to merge 4 commits into
codex/e2e-persistent-storesfrom
codex/improve-cli-release-qa-with
Open

isaacroldan wants to merge 4 commits into
codex/e2e-persistent-storesfrom
codex/improve-cli-release-qa-with

Conversation

@isaacroldan

@isaacroldan isaacroldan commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

Browser-based app cleanup causes E2E failures unrelated to CLI behavior.

WHAT is this pull request doing?

Use authenticated HTTP for app lookup and deletion, with app identity checks, CSRF protection, and deletion confirmation. After a successful uninstall, retry stale installation-count rejections for up to 15 seconds. Also move malformed-TOML checks to the local suite and remove a terminal-wrapping assertion.

Browsers remain necessary for shared login and legacy bulk cleanup. Remote E2E jobs remain non-blocking in CI.

How to manually test your changes?

With E2E credentials configured, select an uninstalled disposable E2E app. Run pnpm --filter e2e exec tsx scripts/cleanup-apps.ts --delete --pattern <exact-owned-app-name> and confirm the app is gone from the dashboard.

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact

@github-actions github-actions Bot added shopify.dev preview Area: @shopify/cli @shopify/cli package issues labels Oct 19, 2026
@isaacroldan
isaacroldan force-pushed the codex/improve-cli-release-qa-with branch from f73f22a to b5a9e37 Compare October 19, 2026 13:49
@github-actions github-actions Bot added no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. and removed Area: @shopify/cli @shopify/cli package issues labels Oct 19, 2026
@isaacroldan isaacroldan changed the title Reuse E2E stores and reduce browser dependencies Remove browser dependencies from E2E test cases Oct 19, 2026
@isaacroldan
isaacroldan changed the base branch from main to codex/e2e-persistent-stores October 19, 2026 13:50
@isaacroldan
isaacroldan added this pull request to stack #8950 October 19, 2026 13:50
@isaacroldan
isaacroldan removed this pull request from stack #8950 October 19, 2026 14:10
@isaacroldan
isaacroldan force-pushed the codex/improve-cli-release-qa-with branch from b5a9e37 to dd6ea18 Compare October 19, 2026 14:10
@isaacroldan
isaacroldan added this pull request to stack #8951 October 19, 2026 14:11
@github-actions

Copy link
Copy Markdown
Contributor

Differences in type declarations

We detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:

  • Some seemingly private modules might be re-exported through public modules.
  • If the branch is behind main you might see odd diffs, rebase main into this branch.

New type declarations

We found no new type declarations in this PR

Existing type declarations

packages/cli-kit/dist/public/node/base-command.d.ts
@@ -21,7 +21,6 @@ declare abstract class BaseCommand extends Command {
     static descriptionWithoutMarkdown(): string | undefined;
     static analyticsNameOverride(): string | undefined;
     static analyticsStopCommand(): string | undefined;
-    private jsonOutputFromFlags;
     catch(error: Error & {
         skipOclifErrorHandling: boolean;
     }): Promise<void>;
@@ -37,7 +36,6 @@ declare abstract class BaseCommand extends Command {
     }, TGlobalFlags extends FlagOutput, TArgs extends ArgOutput>(options?: Input<TFlags, TGlobalFlags, TArgs>, argv?: string[]): Promise<ParserOutput<TFlags, TGlobalFlags, TArgs> & {
         argv: string[];
     }>;
-    protected runWithParsedOutput<T>(flags: FlagOutput, execute: () => T): T;
     protected environmentsFilename(): string | undefined;
     protected parseEnvironmentFlags<TFlags extends FlagOutput, TGlobalFlags extends FlagOutput, TArgs extends ArgOutput>(environment: JsonMap, options: Input<TFlags, TGlobalFlags, TArgs>, explicitFlags: FlagOutput): Promise<FlagOutput>;
     protected validateNonTTYFlags(flags: FlagOutput): void;
packages/cli-kit/dist/public/node/themes/theme-manager.d.ts
@@ -11,12 +11,5 @@ export declare abstract class ThemeManager {
     findOrCreate(name?: string, role?: Role): Promise<Theme>;
     fetch(name?: string, role?: Role): Promise<Theme | undefined>;
     generateThemeName(context: string): string;
-    create(themeRole?: Role, themeName?: string): Promise<{
-        createdAtRuntime: boolean;
-        id: number;
-        name: string;
-        processing: boolean;
-        role: string;
-        src?: string;
-    }>;
+    create(themeRole?: Role, themeName?: string): Promise<Theme>;
 }
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/metafield_definitions_by_owner_type.d.ts
@@ -2,14 +2,9 @@ import * as Types from './types.js';
 import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
 export type MetafieldDefinitionsByOwnerTypeQueryVariables = Types.Exact<{
     ownerType: Types.MetafieldOwnerType;
-    after?: Types.InputMaybe<Types.Scalars['String']['input']>;
 }>;
 export type MetafieldDefinitionsByOwnerTypeQuery = {
     metafieldDefinitions: {
-        pageInfo: {
-            hasNextPage: boolean;
-            endCursor?: string | null;
-        };
         nodes: {
             key: string;
             name: string;

@isaacroldan
isaacroldan force-pushed the codex/improve-cli-release-qa-with branch from 256a0c2 to a31b297 Compare October 20, 2026 08:32

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. shopify.dev preview

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant