diff --git a/visual-dotnet/SauceLabs.Visual/GraphQL/CreateSnapshotFromWebDriverIn.cs b/visual-dotnet/SauceLabs.Visual/GraphQL/CreateSnapshotFromWebDriverIn.cs index e9351a1f..95aaae41 100644 --- a/visual-dotnet/SauceLabs.Visual/GraphQL/CreateSnapshotFromWebDriverIn.cs +++ b/visual-dotnet/SauceLabs.Visual/GraphQL/CreateSnapshotFromWebDriverIn.cs @@ -31,8 +31,6 @@ internal class CreateSnapshotFromWebDriverIn public bool? CaptureDom { get; set; } [JsonProperty("baselineOverride")] public BaselineOverrideIn? BaselineOverride { get; set; } - [JsonProperty("clipSelector")] - public string? ClipSelector { get; set; } [JsonProperty("clipElement")] public string? ClipElement { get; set; } [JsonProperty("fullPageConfig")] @@ -47,7 +45,6 @@ public CreateSnapshotFromWebDriverIn( DiffingMethod diffingMethod, RegionIn[] regions, bool captureDom, - string? clipSelector, string? clipElement, string? suiteName, string? testName, @@ -66,7 +63,6 @@ public CreateSnapshotFromWebDriverIn( SessionMetadata = sessionMetadata; SessionId = sessionId; CaptureDom = captureDom; - ClipSelector = clipSelector; ClipElement = clipElement; SuiteName = suiteName; TestName = testName; diff --git a/visual-dotnet/SauceLabs.Visual/VisualCheckOptions.cs b/visual-dotnet/SauceLabs.Visual/VisualCheckOptions.cs index da249b6a..99ff516d 100644 --- a/visual-dotnet/SauceLabs.Visual/VisualCheckOptions.cs +++ b/visual-dotnet/SauceLabs.Visual/VisualCheckOptions.cs @@ -17,7 +17,6 @@ public class VisualCheckOptions public bool? CaptureDom { get; set; } public bool? FullPage { get; set; } public FullPageConfig? FullPageConfig { get; set; } - public string? ClipSelector { get; set; } public IWebElement? ClipElement { get; set; } /// diff --git a/visual-dotnet/SauceLabs.Visual/VisualClient.cs b/visual-dotnet/SauceLabs.Visual/VisualClient.cs index a5314f9b..99d0d90e 100644 --- a/visual-dotnet/SauceLabs.Visual/VisualClient.cs +++ b/visual-dotnet/SauceLabs.Visual/VisualClient.cs @@ -179,7 +179,6 @@ private async Task VisualCheckAsync(string name, VisualCheckOptions opti sessionId: _sessionId, sessionMetadata: _sessionMetadataBlob ?? "", captureDom: options.CaptureDom ?? CaptureDom, - clipSelector: options.ClipSelector, clipElement: options.ClipElement?.GetElementId(), suiteName: options.SuiteName, testName: options.TestName, diff --git a/visual-java/src/main/graphql/visual/createSnapshotUpload.graphql b/visual-java/src/main/graphql/visual/createSnapshotUpload.graphql index 460ea1d4..6b403c6c 100644 --- a/visual-java/src/main/graphql/visual/createSnapshotUpload.graphql +++ b/visual-java/src/main/graphql/visual/createSnapshotUpload.graphql @@ -2,6 +2,6 @@ mutation createSnapshotUpload($input: SnapshotUploadIn!) { result: createSnapshotUpload(input: $input) { id buildId - uploadUrl + imageUploadUrl } } diff --git a/visual-java/src/main/graphql/visual/schema.graphqls b/visual-java/src/main/graphql/visual/schema.graphqls index a56c59fa..fb196131 100644 --- a/visual-java/src/main/graphql/visual/schema.graphqls +++ b/visual-java/src/main/graphql/visual/schema.graphqls @@ -16,9 +16,10 @@ type ApplicationSummary { } input ApproveBuildIn { - """@deprecated Use `uuid`. This field will be removed in a future update.""" - id: ID + id: UUID onlyNew: Boolean + + """@deprecated Use `id`. This field will be removed in a future update.""" uuid: UUID } @@ -223,6 +224,40 @@ enum BaselinesOrderBy { } type Branch implements Node { + baselines( + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: BaselineCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: BaselineFilter + filters: SnapshotFiltersIn + + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """The method to use when ordering `Baseline`.""" + orderBy: [BaselinesOrderBy!] = [PRIMARY_KEY_ASC] + ): BaselinesConnection! + """Returns the differents values availables for attributes.""" distinctAttributeValues: DistinctAttributeValues! id: String! @@ -276,6 +311,7 @@ enum Browser { CHROME EDGE FIREFOX + NONE PLAYWRIGHT_WEBKIT SAFARI } @@ -347,6 +383,39 @@ type Build implements Node { """The method to use when ordering `Diff`.""" orderBy: [DiffsOrderBy!] = [PRIMARY_KEY_ASC] ): DiffsConnection! + diffsPaginated( + """Read all values in the set after (below) this cursor.""" + after: Cursor + + """Read all values in the set before (above) this cursor.""" + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DiffCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DiffFilter + filters: DiffFiltersIn + + """Only read the first `n` values of the set.""" + first: Int + + """Only read the last `n` values of the set.""" + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """The method to use when ordering `Diff`.""" + orderBy: [DiffsOrderBy!] = [PRIMARY_KEY_ASC] + ): DiffsConnection! """Returns the differents values availables for attributes.""" distinctAttributeValues: DistinctAttributeValues! @@ -619,6 +688,7 @@ type Comment implements Node { A globally unique identifier. Can be used in various places throughout the system to identify this single value. """ nodeId: ID! + updatedAt: Datetime } enum CommentAction { @@ -707,21 +777,16 @@ input CreateSnapshotFromWebDriverIn { visual testing. """ baselineOverride: BaselineOverrideIn + buildId: UUID """ - @deprecated Use `buildUuid`. This field will be removed in a future update. + @deprecated Use `buildId`. This field will be removed in a future update. """ - buildId: ID buildUuid: UUID captureDom: Boolean """The selenium ID of an element we should clip the screen to.""" clipElement: WebdriverElementID - - """ - A querySelector compatible selector of an element that we should crop the screenshot to. - """ - clipSelector: String diffingMethod: DiffingMethod diffingOptions: DiffingOptionsIn @@ -922,6 +987,18 @@ input DiffFilter { status: DiffStatusFilter } +""" +Extension of SnapshotFiltersIn. Should contain the same values here in addition to status filters. +""" +input DiffFiltersIn { + browser: [Browser!] + device: [String!] + groupBy: [GroupByOption!] + operatingSystem: [OperatingSystemFilterIn!] + search: String + status: [DiffStatus!] +} + input DiffPreviewIn { ignoreRegions: [RegionIn!]! } @@ -1051,7 +1128,7 @@ enum DiffsOrderBy { } type DistinctAttributeValues { - browser: [String]! + browser: [Browser]! device: [String]! operatingSystem: [OperatingSystemAttribute!]! storybookDepth1: [String]! @@ -1089,13 +1166,11 @@ input FinishBuildIn { } input ForceFinishBuildIn { - customId: String! + customId: String + uuid: UUID } input FullPageConfigIn { - """@deprecated this field will be removed soon.""" - addressBarShadowPadding: Float - """ Delay in ms after scrolling and before taking screenshots. A slight delay can be helpful if the page is using lazy loading when scrolling @@ -1131,9 +1206,6 @@ input FullPageConfigIn { Default and max value is 10 """ scrollLimit: Int - - """@deprecated this field will be removed soon.""" - toolBarShadowPadding: Int } scalar FullText @@ -1146,6 +1218,14 @@ input FullTextFilter { matches: String } +enum GroupByOption { + Browser + Device + OperatingSystem_OperatingSystemVersion + SuiteName + TestName +} + input IgnoreSelectorIn { diffingOptions: DiffingOptionsIn name: String @@ -1260,6 +1340,12 @@ type Mutation { """ input: MergeBaselinesInput! ): MergeBaselinesPayload! + updateComment( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCommentIn! + ): Comment! updateDiff( """ The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. @@ -1289,6 +1375,11 @@ type OperatingSystemAttribute { version: String } +input OperatingSystemFilterIn { + name: OperatingSystem! + version: String! +} + type Org { id: UUID @@ -2004,7 +2095,6 @@ type Snapshot implements Node { """The method to use when ordering `Diff`.""" orderBy: [DiffsOrderBy!] = [PRIMARY_KEY_ASC] ): DiffsConnection! - domDiffUrl: String domFormat: DomFormat! """ @@ -2096,6 +2186,14 @@ input SnapshotFilter { uploadId: StringFilter } +input SnapshotFiltersIn { + browser: [Browser!] + device: [String!] + groupBy: [GroupByOption!] + operatingSystem: [OperatingSystemFilterIn!] + search: String +} + input SnapshotIn { appId: String appName: String @@ -2108,11 +2206,11 @@ input SnapshotIn { baselineOverride: BaselineOverrideIn browser: Browser browserVersion: String + buildId: UUID """ - @deprecated Use `buildUuid`. This field will be removed in a future update. + @deprecated Use `buildId`. This field will be removed in a future update. """ - buildId: ID buildUuid: UUID device: String devicePixelRatio: Float @@ -2126,11 +2224,11 @@ input SnapshotIn { operatingSystemVersion: String suiteName: String testName: String + uploadId: UUID """ - @deprecated Use `uploadUuid`. This field will be removed in a future update. + @deprecated Use `uploadId`. This field will be removed in a future update. """ - uploadId: ID uploadUuid: UUID } @@ -2139,14 +2237,14 @@ type SnapshotUpload { domUploadUrl: String id: UUID! imageUploadUrl: String - uploadUrl: String! @deprecated(reason: "Use imageUploadUrl.") } input SnapshotUploadIn { + buildId: UUID + """ - @deprecated Use `buildUuid`. This field will be removed in a future update. + @deprecated Use `buildId`. This field will be removed in a future update. """ - buildId: ID buildUuid: UUID } @@ -2246,10 +2344,16 @@ input UUIDFilter { lessThanOrEqualTo: UUID } +input UpdateCommentIn { + comment: String! + id: UUID! +} + input UpdateDiffIn { - """@deprecated Use `uuid`. This field will be removed in a future update.""" - id: ID + id: UUID status: UpdateDiffStatus! + + """@deprecated Use `id`. This field will be removed in a future update.""" uuid: UUID } diff --git a/visual-java/src/main/java/com/saucelabs/visual/graphql/CreateSnapshotFromWebDriverMutation.java b/visual-java/src/main/java/com/saucelabs/visual/graphql/CreateSnapshotFromWebDriverMutation.java index a8f026bf..b2ab365d 100644 --- a/visual-java/src/main/java/com/saucelabs/visual/graphql/CreateSnapshotFromWebDriverMutation.java +++ b/visual-java/src/main/java/com/saucelabs/visual/graphql/CreateSnapshotFromWebDriverMutation.java @@ -43,8 +43,6 @@ public static class CreateSnapshotFromWebDriverIn { public Optional captureDom = Optional.empty(); - public Optional clipSelector = Optional.empty(); - public Optional clipElement = Optional.empty(); public Optional fullPageConfig = Optional.empty(); @@ -109,10 +107,6 @@ public void setCaptureDom(Boolean captureDom) { this.captureDom = Optional.of(captureDom); } - public void setClipSelector(String clipSelector) { - this.clipSelector = Optional.of(clipSelector); - } - public void setClipElement(WebElement clipElement) { this.clipElement = Optional.of(((RemoteWebElement) clipElement).getId()); } diff --git a/visual-js/.changeset/nine-berries-battle.md b/visual-js/.changeset/nine-berries-battle.md new file mode 100644 index 00000000..c3110235 --- /dev/null +++ b/visual-js/.changeset/nine-berries-battle.md @@ -0,0 +1,10 @@ +--- +"@saucelabs/visual": minor +"@saucelabs/cypress-visual-plugin": minor +"@saucelabs/nightwatch-sauce-visual-service": minor +"@saucelabs/visual-playwright": minor +"@saucelabs/visual-storybook": minor +"@saucelabs/wdio-sauce-visual-service": minor +--- + +Removed deprecated functionality. diff --git a/visual-js/visual/src/graphql/__generated__/graphql.ts b/visual-js/visual/src/graphql/__generated__/graphql.ts index f9b4494a..d4b39fc7 100644 --- a/visual-js/visual/src/graphql/__generated__/graphql.ts +++ b/visual-js/visual/src/graphql/__generated__/graphql.ts @@ -24,10 +24,17 @@ export type Scalars = { JSON: any; /** A universally unique identifier as defined by [RFC 4122](https://tools.ietf.org/html/rfc4122). */ UUID: string; + Void: any; WebdriverElementID: string; WebdriverSessionBlob: string; }; +export type AddCommentIn = { + action?: InputMaybe; + comment: Scalars['String']; + diffId: Scalars['UUID']; +}; + export type ApplicationSummary = { __typename?: 'ApplicationSummary'; id: Scalars['String']; @@ -36,9 +43,9 @@ export type ApplicationSummary = { }; export type ApproveBuildIn = { - /** @deprecated Use `uuid`. This field will be removed in a future update. */ - id?: InputMaybe; + id?: InputMaybe; onlyNew?: InputMaybe; + /** @deprecated Use `id`. This field will be removed in a future update. */ uuid?: InputMaybe; }; @@ -206,6 +213,9 @@ export enum BaselinesOrderBy { export type Branch = Node & { __typename?: 'Branch'; + baselines: BaselinesConnection; + /** Returns the differents values availables for attributes. */ + distinctAttributeValues: DistinctAttributeValues; id: Scalars['String']; lastUsed: Scalars['Datetime']; name: Maybe; @@ -216,6 +226,19 @@ export type Branch = Node & { projectId: Scalars['String']; }; + +export type BranchBaselinesArgs = { + after: InputMaybe; + before: InputMaybe; + condition: InputMaybe; + filter: InputMaybe; + filters: InputMaybe; + first: InputMaybe; + last: InputMaybe; + offset: InputMaybe; + orderBy?: InputMaybe>; +}; + /** A connection to a list of `Branch` values. */ export type BranchesConnection = { __typename?: 'BranchesConnection'; @@ -249,6 +272,7 @@ export enum Browser { Chrome = 'CHROME', Edge = 'EDGE', Firefox = 'FIREFOX', + None = 'NONE', PlaywrightWebkit = 'PLAYWRIGHT_WEBKIT', Safari = 'SAFARI' } @@ -257,6 +281,7 @@ export enum Browser { export type Build = Node & { __typename?: 'Build'; branch: Maybe; + commentCount: Maybe; createdAt: Scalars['Datetime']; createdByOrgId: Scalars['UUID']; createdByUser: User; @@ -287,6 +312,9 @@ export type Build = Node & { diffCountExtended: Scalars['Int']; /** Reads and enables pagination through a set of `Diff`. */ diffs: DiffsConnection; + diffsPaginated: DiffsConnection; + /** Returns the differents values availables for attributes. */ + distinctAttributeValues: DistinctAttributeValues; /** * If not null, it indicates that the build encountered an error. * @@ -342,6 +370,20 @@ export type BuildDiffsArgs = { }; +/** The result of diffing a `Baseline` with a `Snapshot`. */ +export type BuildDiffsPaginatedArgs = { + after: InputMaybe; + before: InputMaybe; + condition: InputMaybe; + filter: InputMaybe; + filters: InputMaybe; + first: InputMaybe; + last: InputMaybe; + offset: InputMaybe; + orderBy?: InputMaybe>; +}; + + /** The result of diffing a `Baseline` with a `Snapshot`. */ export type BuildSnapshotsArgs = { after: InputMaybe; @@ -506,6 +548,85 @@ export enum BuildsOrderBy { StatusDesc = 'STATUS_DESC' } +export type Comment = Node & { + __typename?: 'Comment'; + action: Maybe; + comment: Scalars['String']; + createdAt: Scalars['Datetime']; + createdByOrgId: Scalars['UUID']; + createdByUser: User; + createdByUserId: Scalars['UUID']; + /** Reads a single `Diff` that is related to this `Comment`. */ + diff: Maybe; + diffId: Scalars['UUID']; + id: Scalars['UUID']; + /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */ + nodeId: Scalars['ID']; + updatedAt: Maybe; +}; + +export enum CommentAction { + Approved = 'APPROVED', + Rejected = 'REJECTED', + Unapproved = 'UNAPPROVED', + Unrejected = 'UNREJECTED' +} + +/** A condition to be used against `Comment` object types. All fields are tested for equality and combined with a logical ‘and.’ */ +export type CommentCondition = { + /** Checks for equality with the object’s `createdAt` field. */ + createdAt?: InputMaybe; + /** Checks for equality with the object’s `diffId` field. */ + diffId?: InputMaybe; + /** Checks for equality with the object’s `id` field. */ + id?: InputMaybe; +}; + +/** A filter to be used against `Comment` object types. All fields are combined with a logical ‘and.’ */ +export type CommentFilter = { + /** Filter by the object’s `createdAt` field. */ + createdAt?: InputMaybe; + /** Filter by the object’s `diffId` field. */ + diffId?: InputMaybe; + /** Filter by the object’s `id` field. */ + id?: InputMaybe; +}; + +/** A connection to a list of `Comment` values. */ +export type CommentsConnection = { + __typename?: 'CommentsConnection'; + /** A list of edges which contains the `Comment` and cursor to aid in pagination. */ + edges: Array; + /** A list of `Comment` objects. */ + nodes: Array; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** The count of *all* `Comment` you could get from the connection. */ + totalCount: Scalars['Int']; +}; + +/** A `Comment` edge in the connection. */ +export type CommentsEdge = { + __typename?: 'CommentsEdge'; + /** A cursor for use in pagination. */ + cursor: Maybe; + /** The `Comment` at the end of the edge. */ + node: Comment; +}; + +/** Methods to use when ordering `Comment`. */ +export enum CommentsOrderBy { + CreatedAtAsc = 'CREATED_AT_ASC', + CreatedAtDesc = 'CREATED_AT_DESC', + DiffIdAsc = 'DIFF_ID_ASC', + DiffIdDesc = 'DIFF_ID_DESC', + IdAsc = 'ID_ASC', + IdDesc = 'ID_DESC', + Natural = 'NATURAL', + PrimaryKeyAsc = 'PRIMARY_KEY_ASC', + PrimaryKeyDesc = 'PRIMARY_KEY_DESC' +} + export type CreateDerivedBaselinesIn = { baselineIds: Array; onlyApplyIfIsLatest?: InputMaybe; @@ -518,14 +639,12 @@ export type CreateSnapshotFromWebDriverIn = { * visual testing. */ baselineOverride?: InputMaybe; - /** @deprecated Use `buildUuid`. This field will be removed in a future update. */ - buildId?: InputMaybe; + buildId?: InputMaybe; + /** @deprecated Use `buildId`. This field will be removed in a future update. */ buildUuid?: InputMaybe; captureDom?: InputMaybe; /** The selenium ID of an element we should clip the screen to. */ clipElement?: InputMaybe; - /** A querySelector compatible selector of an element that we should crop the screenshot to. */ - clipSelector?: InputMaybe; diffingMethod?: InputMaybe; diffingOptions?: InputMaybe; /** @@ -562,6 +681,10 @@ export type DatetimeFilter = { lessThanOrEqualTo?: InputMaybe; }; +export type DeleteCommentIn = { + id: Scalars['UUID']; +}; + /** * The result of diffing a `Baseline` with a `Snapshot`. * @@ -577,6 +700,8 @@ export type Diff = Node & { /** Reads a single `Build` that is related to this `Diff`. */ build: Maybe; buildId: Scalars['UUID']; + /** Reads and enables pagination through a set of `Comment`. */ + comments: CommentsConnection; createdAt: Scalars['Datetime']; diffBounds: Maybe; diffClusters: Array>; @@ -606,6 +731,23 @@ export type Diff = Node & { }; +/** + * The result of diffing a `Baseline` with a `Snapshot`. + * + * See the documentation for `Baseline` for details how a `Snapshot` is matched to `Baseline`. + */ +export type DiffCommentsArgs = { + after: InputMaybe; + before: InputMaybe; + condition: InputMaybe; + filter: InputMaybe; + first: InputMaybe; + last: InputMaybe; + offset: InputMaybe; + orderBy?: InputMaybe>; +}; + + /** * The result of diffing a `Baseline` with a `Snapshot`. * @@ -653,6 +795,16 @@ export type DiffFilter = { status?: InputMaybe; }; +/** Extension of SnapshotFiltersIn. Should contain the same values here in addition to status filters. */ +export type DiffFiltersIn = { + browser?: InputMaybe>; + device?: InputMaybe>; + groupBy?: InputMaybe>; + operatingSystem?: InputMaybe>; + search?: InputMaybe; + status?: InputMaybe>; +}; + export type DiffPreviewIn = { ignoreRegions: Array; }; @@ -769,6 +921,17 @@ export enum DiffsOrderBy { StatusIsEqualDesc = 'STATUS_IS_EQUAL_DESC' } +export type DistinctAttributeValues = { + __typename?: 'DistinctAttributeValues'; + browser: Array>; + device: Array>; + operatingSystem: Array; + storybookDepth1: Array>; + storybookDepth2: Array>; + suiteName: Array>; + testName: Array>; +}; + export enum DomFormat { AndroidAppium = 'ANDROID_APPIUM', Browser = 'BROWSER', @@ -793,12 +956,11 @@ export type FinishBuildIn = { }; export type ForceFinishBuildIn = { - customId: Scalars['String']; + customId?: InputMaybe; + uuid?: InputMaybe; }; export type FullPageConfigIn = { - /** @deprecated this field will be removed soon. */ - addressBarShadowPadding?: InputMaybe; /** * Delay in ms after scrolling and before taking screenshots. * A slight delay can be helpful if the page is using lazy loading when scrolling @@ -812,6 +974,8 @@ export type FullPageConfigIn = { hideElementsAfterFirstScroll?: InputMaybe>; /** Hide all scrollbars in the app. */ hideScrollBars?: InputMaybe; + /** Selector of an element that we should crop the screenshot to. Available only on native apps. */ + nativeClipSelector?: InputMaybe; /** @experimental Element used for scrolling (available only in native apps) */ scrollElement?: InputMaybe; /** @@ -819,8 +983,6 @@ export type FullPageConfigIn = { * Default and max value is 10 */ scrollLimit?: InputMaybe; - /** @deprecated this field will be removed soon. */ - toolBarShadowPadding?: InputMaybe; }; /** A filter to be used against FullText fields. All fields are combined with a logical ‘and.’ */ @@ -829,6 +991,14 @@ export type FullTextFilter = { matches?: InputMaybe; }; +export enum GroupByOption { + Browser = 'Browser', + Device = 'Device', + OperatingSystemOperatingSystemVersion = 'OperatingSystem_OperatingSystemVersion', + SuiteName = 'SuiteName', + TestName = 'TestName' +} + export type IgnoreSelectorIn = { diffingOptions?: InputMaybe; name?: InputMaybe; @@ -863,6 +1033,7 @@ export type MergeBaselinesPayload = { /** The root mutation type which contains root level fields which mutate data. */ export type Mutation = { __typename?: 'Mutation'; + addComment: Comment; approveBuild: Build; createBuild: Build; /** @@ -873,13 +1044,21 @@ export type Mutation = { createSnapshot: Snapshot; createSnapshotFromWebDriver: Snapshot; createSnapshotUpload: SnapshotUpload; + deleteComment: Maybe; finishBuild: Build; forceFinishBuild: Maybe; mergeBaselines: MergeBaselinesPayload; + updateComment: Comment; updateDiff: Diff; }; +/** The root mutation type which contains root level fields which mutate data. */ +export type MutationAddCommentArgs = { + input: AddCommentIn; +}; + + /** The root mutation type which contains root level fields which mutate data. */ export type MutationApproveBuildArgs = { input: ApproveBuildIn; @@ -916,6 +1095,12 @@ export type MutationCreateSnapshotUploadArgs = { }; +/** The root mutation type which contains root level fields which mutate data. */ +export type MutationDeleteCommentArgs = { + input: DeleteCommentIn; +}; + + /** The root mutation type which contains root level fields which mutate data. */ export type MutationFinishBuildArgs = { input: FinishBuildIn; @@ -934,6 +1119,12 @@ export type MutationMergeBaselinesArgs = { }; +/** The root mutation type which contains root level fields which mutate data. */ +export type MutationUpdateCommentArgs = { + input: UpdateCommentIn; +}; + + /** The root mutation type which contains root level fields which mutate data. */ export type MutationUpdateDiffArgs = { input: UpdateDiffIn; @@ -953,6 +1144,17 @@ export enum OperatingSystem { Windows = 'WINDOWS' } +export type OperatingSystemAttribute = { + __typename?: 'OperatingSystemAttribute'; + name: Maybe; + version: Maybe; +}; + +export type OperatingSystemFilterIn = { + name: OperatingSystem; + version: Scalars['String']; +}; + export type Org = { __typename?: 'Org'; id: Maybe; @@ -1158,6 +1360,11 @@ export type Query = Node & { buildByNodeId: Maybe; /** Reads and enables pagination through a set of `Build`. */ builds: Maybe; + comment: Maybe; + /** Reads a single `Comment` using its globally unique `ID`. */ + commentByNodeId: Maybe; + /** Reads and enables pagination through a set of `Comment`. */ + comments: Maybe; diff: Maybe; /** Reads a single `Diff` using its globally unique `ID`. */ diffByNodeId: Maybe; @@ -1304,6 +1511,31 @@ export type QueryBuildsArgs = { }; +/** The root query type which gives access points into the data universe. */ +export type QueryCommentArgs = { + id: Scalars['UUID']; +}; + + +/** The root query type which gives access points into the data universe. */ +export type QueryCommentByNodeIdArgs = { + nodeId: Scalars['ID']; +}; + + +/** The root query type which gives access points into the data universe. */ +export type QueryCommentsArgs = { + after: InputMaybe; + before: InputMaybe; + condition: InputMaybe; + filter: InputMaybe; + first: InputMaybe; + last: InputMaybe; + offset: InputMaybe; + orderBy?: InputMaybe>; +}; + + /** The root query type which gives access points into the data universe. */ export type QueryDiffArgs = { id: Scalars['UUID']; @@ -1481,7 +1713,6 @@ export type Snapshot = Node & { devicePixelRatio: Scalars['Float']; /** Reads and enables pagination through a set of `Diff`. */ diffs: DiffsConnection; - domDiffUrl: Maybe; domFormat: DomFormat; /** * If not null, it indicates that the snapshot is invalid. @@ -1576,6 +1807,14 @@ export type SnapshotFilter = { uploadId?: InputMaybe; }; +export type SnapshotFiltersIn = { + browser?: InputMaybe>; + device?: InputMaybe>; + groupBy?: InputMaybe>; + operatingSystem?: InputMaybe>; + search?: InputMaybe; +}; + export type SnapshotIn = { appId?: InputMaybe; appName?: InputMaybe; @@ -1587,8 +1826,8 @@ export type SnapshotIn = { baselineOverride?: InputMaybe; browser?: InputMaybe; browserVersion?: InputMaybe; - /** @deprecated Use `buildUuid`. This field will be removed in a future update. */ - buildId?: InputMaybe; + buildId?: InputMaybe; + /** @deprecated Use `buildId`. This field will be removed in a future update. */ buildUuid?: InputMaybe; device?: InputMaybe; devicePixelRatio?: InputMaybe; @@ -1602,8 +1841,8 @@ export type SnapshotIn = { operatingSystemVersion?: InputMaybe; suiteName?: InputMaybe; testName?: InputMaybe; - /** @deprecated Use `uploadUuid`. This field will be removed in a future update. */ - uploadId?: InputMaybe; + uploadId?: InputMaybe; + /** @deprecated Use `uploadId`. This field will be removed in a future update. */ uploadUuid?: InputMaybe; }; @@ -1613,13 +1852,11 @@ export type SnapshotUpload = { domUploadUrl: Maybe; id: Scalars['UUID']; imageUploadUrl: Maybe; - /** @deprecated Use imageUploadUrl. */ - uploadUrl: Scalars['String']; }; export type SnapshotUploadIn = { - /** @deprecated Use `buildUuid`. This field will be removed in a future update. */ - buildId?: InputMaybe; + buildId?: InputMaybe; + /** @deprecated Use `buildId`. This field will be removed in a future update. */ buildUuid?: InputMaybe; }; @@ -1692,10 +1929,15 @@ export type UuidFilter = { lessThanOrEqualTo?: InputMaybe; }; +export type UpdateCommentIn = { + comment: Scalars['String']; + id: Scalars['UUID']; +}; + export type UpdateDiffIn = { - /** @deprecated Use `uuid`. This field will be removed in a future update. */ - id?: InputMaybe; + id?: InputMaybe; status: UpdateDiffStatus; + /** @deprecated Use `id`. This field will be removed in a future update. */ uuid?: InputMaybe; }; diff --git a/visual-js/visual/src/types.ts b/visual-js/visual/src/types.ts index ee4c8270..7c3ef785 100644 --- a/visual-js/visual/src/types.ts +++ b/visual-js/visual/src/types.ts @@ -5,10 +5,6 @@ import { SauceRegion } from './common/regions'; export type FullPageScreenshotOptions = | boolean | { - /** - * @deprecated this field will be removed soon - */ - addressBarShadowPadding?: number; /** * Delay in ms after scrolling and before taking screenshots. * A slight delay can be helpful if the page is using lazy loading when scrolling @@ -26,10 +22,6 @@ export type FullPageScreenshotOptions = * Hide all scrollbars in the app. */ hideScrollBars?: boolean; - /** - * @deprecated this field will be removed soon - */ - toolBarShadowPadding?: number; /** * Limit the number of screenshots taken for scrolling and stitching. */ diff --git a/visual-python/src/saucelabs_visual/client.py b/visual-python/src/saucelabs_visual/client.py index a4a6f351..583a7067 100644 --- a/visual-python/src/saucelabs_visual/client.py +++ b/visual-python/src/saucelabs_visual/client.py @@ -255,7 +255,6 @@ def create_snapshot_from_webdriver( $testName: String, $suiteName: String, $captureDom: Boolean, - $clipSelector: String, $clipElement: WebdriverElementID, $ignoreRegions: [RegionIn!], $ignoreElements: [ElementIn!], @@ -272,7 +271,6 @@ def create_snapshot_from_webdriver( testName: $testName, suiteName: $suiteName, captureDom: $captureDom, - clipSelector: $clipSelector, clipElement: $clipElement, ignoreRegions: $ignoreRegions, ignoreElements: $ignoreElements, @@ -299,7 +297,6 @@ def create_snapshot_from_webdriver( "testName": test_name, "suiteName": suite_name, "captureDom": capture_dom if capture_dom is not None else self.capture_dom, - "clipSelector": clip_selector, "clipElement": clip_element.id if clip_element is not None else None, "ignoreRegions": [ asdict(region) for region in ignore_regions