How to use stableScreenshots method in argos

Best JavaScript code snippet using argos

index.js

Source:index.js Github

copy

Full Screen

1import * as React from "react";2import { gql } from "graphql-tag";3import { useParams } from "react-router-dom";4import { x } from "@xstyled/styled-components";5import { Helmet } from "react-helmet";6import { useInView } from "react-cool-inview";7import {8 Button,9 Container,10 IllustratedText,11 Loader,12 LoadingAlert,13 PrimaryTitle,14 SecondaryTitle,15 useTooltipState,16 TooltipAnchor,17 Tooltip,18} from "@argos-ci/app/src/components";19import { useQuery } from "../../containers/Apollo";20import { NotFound } from "../NotFound";21import {22 UpdateStatusButton,23 UpdateStatusButtonBuildFragment,24 UpdateStatusButtonRepositoryFragment,25} from "./UpdateStatusButton";26import { EyeClosedIcon, EyeIcon } from "@primer/octicons-react";27import { getStatusPrimaryColor } from "../../containers/Status";28import {29 StickySummaryMenu,30 SummaryCard,31 SummaryCardFragment,32} from "./SummaryCard";33import {34 EmptyScreenshotCard,35 ScreenshotsDiffCard,36 ScreenshotsDiffCardFragment,37} from "./ScreenshotsDiffCard";38import { ScreenshotDiffStatusIcon } from "./ScreenshotDiffStatusIcons";39const ScreenshotDiffsPageFragment = gql`40 fragment ScreenshotDiffsPageFragment on ScreenshotDiffResult {41 pageInfo {42 totalCount43 hasNextPage44 endCursor45 }46 edges {47 id48 score49 status50 ...ScreenshotsDiffCardFragment51 }52 }53 ${ScreenshotsDiffCardFragment}54`;55const BUILD_STABLE_SCREENSHOT_DIFFS_QUERY = gql`56 query BUILD_STABLE_SCREENSHOT_DIFFS_QUERY(57 $ownerLogin: String!58 $repositoryName: String!59 $buildNumber: Int!60 $offset: Int!61 $limit: Int!62 ) {63 repository(ownerLogin: $ownerLogin, repositoryName: $repositoryName) {64 id65 build(number: $buildNumber) {66 screenshotDiffs(67 offset: $offset68 limit: $limit69 where: { passing: true }70 ) {71 ...ScreenshotDiffsPageFragment72 }73 }74 }75 }76 ${ScreenshotDiffsPageFragment}77`;78const BUILD_QUERY = gql`79 query BUILD_QUERY(80 $buildNumber: Int!81 $ownerLogin: String!82 $repositoryName: String!83 $offset: Int!84 $limit: Int!85 ) {86 repository(ownerLogin: $ownerLogin, repositoryName: $repositoryName) {87 id88 ...UpdateStatusButtonRepositoryFragment89 build(number: $buildNumber) {90 id91 ...SummaryCardFragment92 ...UpdateStatusButtonBuildFragment93 screenshotDiffs(94 where: { passing: false }95 offset: $offset96 limit: $limit97 ) {98 ...ScreenshotDiffsPageFragment99 }100 stats {101 addedScreenshotCount102 stableScreenshotCount103 updatedScreenshotCount104 }105 }106 }107 }108 ${UpdateStatusButtonRepositoryFragment}109 ${SummaryCardFragment}110 ${ScreenshotDiffsPageFragment}111 ${UpdateStatusButtonBuildFragment}112`;113function BuildStat({ type, count, label }) {114 const tooltip = useTooltipState();115 if (count === 0) return null;116 return (117 <>118 <TooltipAnchor state={tooltip}>119 <IllustratedText120 icon={ScreenshotDiffStatusIcon(type)}121 color={getStatusPrimaryColor(type)}122 cursor="default"123 >124 {count}125 </IllustratedText>126 </TooltipAnchor>127 <Tooltip state={tooltip}>{label}</Tooltip>128 </>129 );130}131export function ScreenshotCards({ screenshotDiffs, open }) {132 if (screenshotDiffs.length === 0) return <EmptyScreenshotCard />;133 return (134 <x.div display="flex" flexDirection="column" gap={2}>135 {screenshotDiffs.map((screenshotDiff, index) => (136 <ScreenshotsDiffCard137 screenshotDiff={screenshotDiff}138 key={index}139 opened={open}140 />141 ))}142 </x.div>143 );144}145function fetchMoreScreenshotDiffs({ data, fetchMore }) {146 return fetchMore({147 variables: {148 offset: data.repository.build.screenshotDiffs.pageInfo.endCursor,149 },150 updateQuery: (prev, { fetchMoreResult }) => {151 if (!fetchMoreResult) return prev;152 return {153 ...prev,154 repository: {155 ...prev.repository,156 build: {157 ...prev.repository.build,158 screenshotDiffs: {159 ...fetchMoreResult.repository.build.screenshotDiffs,160 edges: [161 ...prev.repository.build.screenshotDiffs.edges,162 ...fetchMoreResult.repository.build.screenshotDiffs.edges,163 ],164 },165 },166 },167 };168 },169 });170}171export function StableScreenshots({ ownerLogin, repositoryName, buildNumber }) {172 const { loading, data, fetchMore } = useQuery(173 BUILD_STABLE_SCREENSHOT_DIFFS_QUERY,174 {175 variables: {176 ownerLogin,177 repositoryName,178 buildNumber,179 offset: 0,180 limit: 10,181 },182 skip: !ownerLogin || !repositoryName || !buildNumber,183 }184 );185 const [moreLoading, setMoreLoading] = React.useState();186 function loadNextPage() {187 setMoreLoading(true);188 fetchMoreScreenshotDiffs({ data, fetchMore }).finally(() => {189 setMoreLoading(false);190 });191 }192 if (loading || !data) return <LoadingAlert />;193 const {194 build: {195 screenshotDiffs: { pageInfo, edges: screenshotDiffs },196 },197 } = data.repository;198 return (199 <>200 <ScreenshotCards screenshotDiffs={screenshotDiffs} open={false} />201 {pageInfo.hasNextPage && (202 <Button203 mt={4}204 mx="auto"205 onClick={() => loadNextPage()}206 disabled={moreLoading}207 >208 Load More {moreLoading && <Loader maxH={4} />}209 </Button>210 )}211 </>212 );213}214const BuildContent = ({ ownerLogin, repositoryName, buildNumber }) => {215 const [showStableScreenshots, setShowStableScreenshots] =216 React.useState(false);217 const { observe, inView } = useInView();218 const { loading, data, fetchMore } = useQuery(BUILD_QUERY, {219 variables: {220 ownerLogin,221 repositoryName,222 buildNumber,223 offset: 0,224 limit: 10,225 },226 skip: !ownerLogin || !repositoryName || !buildNumber,227 });228 const [moreLoading, setMoreLoading] = React.useState();229 function loadNextPage() {230 setMoreLoading(true);231 fetchMoreScreenshotDiffs({ data, fetchMore }).finally(() => {232 setMoreLoading(false);233 });234 }235 if (loading) return <LoadingAlert />;236 if (!data?.repository?.build) return <NotFound />;237 const {238 build,239 build: {240 stats,241 screenshotDiffs: { pageInfo, edges: screenshotDiffs },242 },243 } = data.repository;244 const diffGroups = screenshotDiffs.reduce(245 ({ added, updated }, screenshotDiff) => {246 const group = screenshotDiff.status === "added" ? added : updated;247 group.push(screenshotDiff);248 return { added, updated };249 },250 {251 added: [],252 updated: [],253 }254 );255 return (256 <>257 <x.div258 display="flex"259 justifyContent="space-between"260 alignItems="baseline"261 columnGap={10}262 flexWrap="wrap"263 mb={3}264 >265 <PrimaryTitle mb={0}>Build #{buildNumber}</PrimaryTitle>266 <x.div267 display="flex"268 alignItems="flex-start"269 gap={3}270 pt="6px"271 flexShrink={0}272 >273 <BuildStat274 type="added"275 count={stats.addedScreenshotCount}276 label="Added screenshots"277 />278 <BuildStat279 type="updated"280 count={stats.updatedScreenshotCount}281 label="Updated screenshots"282 />283 <BuildStat284 type="stable"285 count={stats.stableScreenshotCount}286 label="Stable screenshots"287 />288 </x.div>289 </x.div>290 <SummaryCard repository={data.repository} build={build} />291 {build.status === "pending" ? (292 <LoadingAlert my={5} flexDirection="column">293 Build in progress294 </LoadingAlert>295 ) : (296 <>297 <x.div298 display="flex"299 justifyContent="space-between"300 columnGap={10}301 rowGap={4}302 flexWrap="wrap-reverse"303 mt={5}304 ref={observe}305 >306 <Button307 borderRadius="md"308 variant="neutral"309 onClick={() => setShowStableScreenshots((prev) => !prev)}310 justifyContent="start"311 >312 <IllustratedText313 icon={showStableScreenshots ? EyeClosedIcon : EyeIcon}314 field315 >316 {showStableScreenshots ? "Hide" : "Show"} stable screenshots317 </IllustratedText>318 </Button>319 <UpdateStatusButton repository={data.repository} build={build} />320 </x.div>321 {inView ? null : (322 <StickySummaryMenu repository={data.repository} build={build} />323 )}324 {showStableScreenshots ? (325 <>326 <SecondaryTitle mt={4}>Stable Screenshots</SecondaryTitle>327 <StableScreenshots328 ownerLogin={ownerLogin}329 repositoryName={repositoryName}330 buildNumber={buildNumber}331 />332 </>333 ) : null}334 {diffGroups.added.length > 0 && (335 <>336 <SecondaryTitle mt={4}>Added Screenshots</SecondaryTitle>337 <ScreenshotCards screenshotDiffs={diffGroups.added} />338 </>339 )}340 {diffGroups.updated.length > 0 && (341 <>342 <SecondaryTitle mt={4}>Updated Screenshots</SecondaryTitle>343 <ScreenshotCards screenshotDiffs={diffGroups.updated} />344 </>345 )}346 {pageInfo.hasNextPage && (347 <Button348 mt={4}349 mx="auto"350 onClick={() => loadNextPage()}351 disabled={moreLoading}352 >353 Load More {moreLoading && <Loader maxH={4} />}354 </Button>355 )}356 </>357 )}358 </>359 );360};361export function Build() {362 const {363 ownerLogin,364 repositoryName,365 buildNumber: strBuildNumber,366 } = useParams();367 const buildNumber = parseInt(strBuildNumber, 10);368 return (369 <Container>370 <Helmet>371 <title>{`Build #${buildNumber} - ${repositoryName}`}</title>372 </Helmet>373 {Number.isInteger(buildNumber) ? (374 <BuildContent375 ownerLogin={ownerLogin}376 repositoryName={repositoryName}377 buildNumber={buildNumber}378 />379 ) : (380 <NotFound />381 )}382 </Container>383 );...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var argos = require('argos');2 if(err) {3 console.log(err);4 } else {5 console.log(data);6 }7});8var argos = require('argos');9 if(err) {10 console.log(err);11 } else {12 console.log(data);13 }14});15var argos = require('argos');16 if(err) {17 console.log(err);18 } else {19 console.log(data);20 }21});22var argos = require('argos');23 if(err) {24 console.log(err);25 } else {26 console.log(data);27 }28});29var argos = require('argos');30 if(err) {31 console.log(err);32 } else {33 console.log(data);34 }35});36var argos = require('argos');37 if(err) {38 console.log(err);39 } else {40 console.log(data);41 }42});43var argos = require('argos');44 if(err) {45 console.log(err);46 } else {47 console.log(data);48 }49});50var argos = require('argos');

Full Screen

Using AI Code Generation

copy

Full Screen

1import argos from 'argos-sdk';2argos.screenshots.stableScreenshots();3import argos from 'argos-sdk';4argos.screenshots.stableScreenshots();5import argos from 'argos-sdk';6argos.screenshots.stableScreenshots();7import argos from 'argos-sdk';8argos.screenshots.stableScreenshots();9import argos from 'argos-sdk';10argos.screenshots.stableScreenshots();11import argos from 'argos-sdk';12argos.screenshots.stableScreenshots();13import argos from 'argos-sdk';14argos.screenshots.stableScreenshots();15import argos from 'argos-sdk';16argos.screenshots.stableScreenshots();17import argos from 'argos-sdk';18argos.screenshots.stableScreenshots();19import argos from 'argos-sdk';20argos.screenshots.stableScreenshots();21import argos from 'argos-sdk';22argos.screenshots.stableScreenshots();23import argos from 'argos-sdk';24argos.screenshots.stableScreenshots();25import argos from 'argos-sdk';

Full Screen

Using AI Code Generation

copy

Full Screen

1const argos = require('argos');2const argosScreenshots = new argos.Screenshots();3const argosScreenshots = argosScreenshots.stableScreenshots();4const argos = require('argos');5const argosScreenshots = new argos.Screenshots();6const argosScreenshots = argosScreenshots.stableScreenshots();7const argos = require('argos');8const argosScreenshots = new argos.Screenshots();9const argosScreenshots = argosScreenshots.stableScreenshots();10const argos = require('argos');11const argosScreenshots = new argos.Screenshots();12const argosScreenshots = argosScreenshots.stableScreenshots();13const argos = require('argos');14const argosScreenshots = new argos.Screenshots();15const argosScreenshots = argosScreenshots.stableScreenshots();16const argos = require('argos');17const argosScreenshots = new argos.Screenshots();18const argosScreenshots = argosScreenshots.stableScreenshots();19const argos = require('argos');20const argosScreenshots = new argos.Screenshots();21const argosScreenshots = argosScreenshots.stableScreenshots();22const argos = require('argos');23const argosScreenshots = new argos.Screenshots();24const argosScreenshots = argosScreenshots.stableScreenshots();25const argos = require('argos');

Full Screen

Using AI Code Generation

copy

Full Screen

1const argos = require('argos');2const driver = argos.driver;3const assert = require('assert');4driver.init({platformName: 'Android', deviceName: 'emulator-5554', app: '/Users/xxxx/Downloads/ArgosSample.apk'});5driver.stableScreenshots('test', 10, 2, 2, 2, 2, 0.5, 0.5, 3, 3, 3, 3);6driver.quit();

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run argos automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful