Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container prepare 2026/09/13 06:43:06 Entrypoint initialization Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container place-scripts 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-0-lw9wd 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-1-84lmf 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-2-dwhwn 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-3-5229d 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-4-6qz29 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-5-969qc 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-6-46jbk 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-7-8tscf 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-8-6xcpc 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-9-5slrq 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-10-wlx9p 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-11-qjxff 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-12-h6mzb 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-14-dkjz4 2026/09/13 06:43:07 Decoded script /tekton/scripts/script-15-v5tbd Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container working-dir-initializer Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-git-clone git cloning url: https://github.com/greencapitaltrade/flash.git version refs/pull/412/head:PR-412@aacc791e7162ceb84cf4047e294cfcb90171aaa6 to dir: source Cloning into 'source'... From https://github.com/greencapitaltrade/flash * [new ref] refs/pull/412/head -> PR-412 Switched to branch 'PR-412' HEAD is now at aacc791e fix: align team mutations and assignment typing checked out revision: refs/pull/412/head:PR-412@aacc791e7162ceb84cf4047e294cfcb90171aaa6 to dir: source Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-git-merge setup git user email jenkins-x@googlegroups.com Using SHAs from PULL_REFS=main:c62240d1d1c96e11777fca29c38cd8f963b56b82,412:aacc791e7162ceb84cf4047e294cfcb90171aaa6:refs/pull/412/head using base branch main and base sha c62240d1d1c96e11777fca29c38cd8f963b56b82 merging sha: aacc791e7162ceb84cf4047e294cfcb90171aaa6 Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-jx-variables WARNING: no $GIT_SECRET_MOUNT_PATH environment variable set about to run: git clone --no-checkout --filter=blob:none --depth=1 https://github.com/greencapitaltrade/mcu.git /tmp/jx-git-1722763272 in dir /tmp Cloning into '/tmp/jx-git-1722763272'... about to run: git sparse-checkout set --no-cone jx-requirements.yml .jx/gitops/source-config.yaml in dir /tmp/jx-git-1722763272 about to run: git checkout in dir /tmp/jx-git-1722763272 Your branch is up to date with 'origin/main'. export APP_NAME='flash' export BRANCH_NAME='PR-412' export BUILD_NUMBER='4' export DOCKERFILE_PATH='Dockerfile' export DOCKER_REGISTRY='417755753340.dkr.ecr.ap-south-1.amazonaws.com' export DOCKER_REGISTRY_ORG='greencapitaltrade' export DOMAIN='gc-t.in' about to run: git rev-parse --abbrev-ref HEAD in dir . main export GIT_BRANCH='main' export JENKINS_X_URL='https://dashboard-jx.gc-t.in/greencapitaltrade/flash/PR-412/4' export JX_CHART_REPOSITORY='http://jenkins-x-chartmuseum.jx.svc.cluster.local:8080' export KANIKO_FLAGS='--skip-unused-stages --snapshotMode=redo' export MINK_AS='tekton-bot' version file VERSION does not exist export MINK_IMAGE='417755753340.dkr.ecr.ap-south-1.amazonaws.com/greencapitaltrade/flash:0.0.0-PR-412-4-SNAPSHOT' export NAMESPACE_SUB_DOMAIN='-jx.' export PIPELINE_KIND='pullrequest' export PUSH_CONTAINER_REGISTRY='417755753340.dkr.ecr.ap-south-1.amazonaws.com' export REPO_NAME='flash' export REPO_OWNER='greencapitaltrade' version file VERSION does not exist export VERSION='0.0.0-PR-412-4-SNAPSHOT' added variables to file: .jx/variables.sh added variables to file: .jx/variables.sh Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-build-yarn-install ➤ YN0000: Successfully set npmScopes.greencapitaltrade.npmRegistryServer to 'https://npm.pkg.github.com' ➤ YN0000: Successfully set npmScopes.greencapitaltrade.npmAuthToken to '********' ➤ YN0000: · Yarn 4.5.0 ➤ YN0000: ┌ Resolution step ➤ YN0085: │ + expo-secure-store@npm:57.0.4, typescript@patch:typescript@npm%3A6.0.3#optional!builtin::version=6.0.3&hash=8c6c40, typescript@npm:6.0.3 ➤ YN0000: └ Completed in 0s 886ms ➤ YN0000: ┌ Post-resolution validation ➤ YN0086: │ Some peer dependencies are incorrectly met by dependencies; run yarn explain peer-requirements for details. ➤ YN0000: └ Completed ➤ YN0000: ┌ Fetch step ➤ YN0066: │ typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=8c6c40: Cannot apply hunk #1 ➤ YN0066: │ typescript@patch:typescript@npm%3A6.0.3#optional!builtin::version=6.0.3&hash=8c6c40: Cannot apply hunk #1 ➤ YN0000: └ Completed in 43s 930ms ➤ YN0000: ┌ Link step ➤ YN0007: │ @biomejs/biome@npm:1.9.4 must be built because it never has been before or the last one failed ➤ YN0007: │ esbuild@npm:0.21.5 must be built because it never has been before or the last one failed ➤ YN0007: │ esbuild@npm:0.27.2 must be built because it never has been before or the last one failed ➤ YN0007: │ esbuild@npm:0.27.7 must be built because it never has been before or the last one failed ➤ YN0007: │ @pact-foundation/pact-core@npm:19.2.0 must be built because it never has been before or the last one failed ➤ YN0007: │ @scarf/scarf@npm:1.4.0 must be built because it never has been before or the last one failed ➤ YN0007: │ esbuild@npm:0.14.47 must be built because it never has been before or the last one failed ➤ YN0007: │ sharp@npm:0.34.5 must be built because it never has been before or the last one failed ➤ YN0007: │ esbuild@npm:0.25.10 must be built because it never has been before or the last one failed ➤ YN0007: │ @swc/core@npm:1.15.11 [ca773] must be built because it never has been before or the last one failed ➤ YN0007: │ unrs-resolver@npm:1.11.1 must be built because it never has been before or the last one failed ➤ YN0007: │ protobufjs@npm:7.6.4 must be built because it never has been before or the last one failed ➤ YN0007: │ starter-free@workspace:. must be built because it never has been before or the last one failed ➤ YN0000: │ starter-free@workspace:. STDOUT Tamagui dependencies look good ✅ ➤ YN0000: │ starter-free@workspace:. STDOUT API package built ➤ YN0000: │ starter-free@workspace:. STDOUT [baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D` ➤ YN0000: │ starter-free@workspace:. STDOUT built @my/config in 616 ms ➤ YN0000: │ starter-free@workspace:. STDOUT npm warn Unknown user config "unsafe-perm". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. ➤ YN0000: │ starter-free@workspace:. STDOUT [baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D` ➤ YN0000: │ starter-free@workspace:. STDOUT built @my/ui in 688 ms ➤ YN0000: │ starter-free@workspace:. STDOUT Done in 7s 26ms ➤ YN0000: └ Completed in 56s 390ms ➤ YN0000: · Done with warnings in 1m 42s Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-build-yarn-install-errors Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-pact-consumer RUN v2.1.9 /workspace/source 2026-09-13T06:45:09.171417Z WARN ThreadId(01) pact_models::pact: Note: Existing pact is an older specification version (V3), and will be upgraded ✓ apps/next/__tests__/pact/telemetry-consumer.pact.test.ts (2 tests) 4ms Test Files 1 passed (1) Tests 2 passed (2) Start at 06:45:08 Duration 689ms (transform 44ms, setup 0ms, collect 394ms, tests 4ms, environment 0ms, prepare 80ms) Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-pact-publish ➤ YN0000: · Yarn 4.5.0 ➤ YN0000: ┌ Resolution step ➤ YN0085: │ + @pact-foundation/pact-cli@npm:18.1.1, @pact-foundation/pact-cli-darwin-arm64@npm:18.1.1, @pact-foundation/pact-cli-darwin-x64@npm:18.1.1, and 4 more. ➤ YN0000: └ Completed in 0s 844ms ➤ YN0000: ┌ Fetch step ➤ YN0000: └ Completed in 2s 561ms ➤ YN0000: ┌ Link step ➤ YN0007: │ @pact-foundation/pact-cli@npm:18.1.1 must be built because it never has been before or the last one failed ➤ YN0000: └ Completed in 0s 212ms ➤ YN0000: · Done in 3s 634ms 📨 Attempting to publish pact for consumer: flash against provider: deadpool ✅ Created flash version aacc791e with tags main Next steps: Configure the version branch to be the value of your repository branch. Pact successfully published for flash version aacc791e and provider deadpool. View the published pact at http://pact-broker.jx.svc.cluster.local/pacts/provider/deadpool/consumer/flash/version/aacc791e Events detected: contract_published (pact content is the same as previous version with tag main and no new tags were applied) Next steps: * Add Pact verification tests to the deadpool build. See https://docs.pact.io/go/provider_verification * Configure separate deadpool pact verification build and webhook to trigger it when the pact content changes. See https://docs.pact.io/go/webhooks Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-typecheck Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-typecheck-errors Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-unit-tests RUN v2.1.9 /workspace/source ✓ packages/app/features/asset/hooks/__tests__/useAssetTelemetry.test.ts (20 tests) 86ms stderr | packages/app/features/asset/screens/__tests__/reports-filters.test.tsx > ReportsScreen — Trips tab rendering (flag OFF by default) > Trips tab is visible regardless of enabled_features when flag is off React does not recognize the `alignItems` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `alignitems` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `justifyContent` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `justifycontent` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `flexBasis` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `flexbasis` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `flexGrow` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `flexgrow` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `maxWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `maxwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `minWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `minwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `numberOfLines` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `numberoflines` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `zIndex` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `zindex` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `flexWrap` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `flexwrap` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `backgroundColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `backgroundcolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `hoverStyle` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `hoverstyle` instead. If you accidentally passed it from a parent component, remove it from the DOM element. Received `true` for a non-boolean attribute `horizontal`. If you want to write it to the DOM, pass a string instead: horizontal="true" or horizontal={value.toString()}. React does not recognize the `showsHorizontalScrollIndicator` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `showshorizontalscrollindicator` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `paddingTop` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `paddingtop` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `showsVerticalScrollIndicator` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `showsverticalscrollindicator` instead. If you accidentally passed it from a parent component, remove it from the DOM element. Unknown event handler property `onValueChange`. It will be ignored. React does not recognize the `flexDirection` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `flexdirection` instead. If you accidentally passed it from a parent component, remove it from the DOM element. stderr | packages/app/features/asset/screens/__tests__/reports-filters.test.tsx > ReportsScreen — legacy filter bar (flag OFF) > clicking the Asset trigger opens the options panel React does not recognize the `paddingHorizontal` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `paddinghorizontal` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `paddingVertical` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `paddingvertical` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `maxHeight` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `maxheight` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `marginTop` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `margintop` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `bordercolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderRadius` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderradius` instead. If you accidentally passed it from a parent component, remove it from the DOM element. stderr | packages/app/features/asset/screens/__tests__/reports-filters.test.tsx > ReportsScreen — v2 flag ON: filter bar, search, error, trips gating > renders the v2 filter bar with a Search input Invalid attribute name: `$lg` stderr | packages/app/features/asset/screens/__tests__/reports-filters.test.tsx > ReportsScreen — v2 flag ON: filter bar, search, error, trips gating > search input filters rows by license_plate after 300ms debounce React does not recognize the `textAlign` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `textalign` instead. If you accidentally passed it from a parent component, remove it from the DOM element. Invalid attribute name: `$md` ✓ packages/app/features/asset/screens/__tests__/reports-filters.test.tsx (25 tests) 673ms stderr | apps/next/__tests__/components/geofences-page.test.tsx > GeofencesPage component > renders without crashing React does not recognize the `textTransform` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `texttransform` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `marginTop` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `margintop` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `justifyContent` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `justifycontent` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `alignItems` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `alignitems` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `backgroundColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `backgroundcolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderRadius` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderradius` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `bordercolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `minWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `minwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderBottomWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderbottomwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderBottomColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderbottomcolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `paddingHorizontal` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `paddinghorizontal` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `numberOfLines` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `numberoflines` instead. If you accidentally passed it from a parent component, remove it from the DOM element. Received `true` for a non-boolean attribute `circular`. If you want to write it to the DOM, pass a string instead: circular="true" or circular={value.toString()}. Received `true` for a non-boolean attribute `chromeless`. If you want to write it to the DOM, pass a string instead: chromeless="true" or chromeless={value.toString()}. React does not recognize the `hoverStyle` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `hoverstyle` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderTopWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `bordertopwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderTopColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `bordertopcolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderLeftWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderleftwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. React does not recognize the `borderLeftColor` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `borderleftcolor` instead. If you accidentally passed it from a parent component, remove it from the DOM element. stderr | apps/next/__tests__/components/geofences-page.test.tsx > GeofencesPage component > no search matches shows appropriate message React does not recognize the `textAlign` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `textalign` instead. If you accidentally passed it from a parent component, remove it from the DOM element. stderr | apps/next/__tests__/components/geofences-page.test.tsx > geofences feature gate > renders the not-enabled screen when the module is off React does not recognize the `maxWidth` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `maxwidth` instead. If you accidentally passed it from a parent component, remove it from the DOM element. ✓ apps/next/__tests__/components/geofences-page.test.tsx (20 tests) 529ms stderr | apps/next/__tests__/components/create-team-client.test.tsx > CreateTeamPageClient > renders without crashing Invalid value for prop `icon` on               Select a team to manage assignments.   Assets and operators are unavailable without a validated team scope.       × AssetAssignmentScreen — handover/return failure surfacing > a successful handover calls createAssignment and refetches 14ms → Unable to find an element with the text: KA-01-AB-1234. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style  
       Asset Assignments 
   New Assignment               Select a team to manage assignments.   Assets and operators are unavailable without a validated team scope.       × AssetAssignmentScreen — handover/return failure surfacing > a failed handover renders the error banner and does not refetch 9ms → Unable to find an element with the text: KA-01-AB-1234. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style  
       Asset Assignments 
   New Assignment               Select a team to manage assignments.   Assets and operators are unavailable without a validated team scope.       × AssetAssignmentScreen — handover/return failure surfacing > does not render unfiltered assignment history in a team view 8ms → Unable to find an element with the text: Assignment history unavailable: the server does not provide a team filter.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style  
       Asset Assignments 
                Select an asset to view its current assignment.       stderr | apps/next/__tests__/create-team-flow.e2e.test.tsx > create team flow (feature-create-team) > feature-create-team: creates a new team and returns to the teams list on success Invalid value for prop `icon` on + ) + const id2 = push( + + ) + return () => { + remove(id1) + remove(id2) + } + }, [push, remove, handleCreateAssignment, handleAddRider]) + + // Show feature disabled state + if (!hasRiderManagement) { + return ( + + {/* Breadcrumbs */} + {breadcrumbItems.length > 0 && } + + {/* Feature Not Enabled Message */} + + + + Rider Management Feature Not Enabled + + + This organization doesn't have the Rider Management feature enabled. + Contact your administrator to enable this feature to access: + + + + • Driver and rider onboarding + • Asset assignment workflows + • Team management and hierarchy + • Performance tracking and ratings + • Document verification systems + • Assignment history and analytics + + + + + + {/* Preview of what rider management would look like */} + +

Rider Management (Preview)

+ + + + + + Rider Directory + + Comprehensive rider profiles and status management + + + + + + Asset Assignments + + Track and manage asset-rider assignments + + + + + + Team Management + + Organize riders into teams and locations + + + + + + Documentation + + License verification and document management + + +
+
+ ) + } + + if (!hasTeamScope) { + return ( + + {breadcrumbItems.length > 0 && } + Rider management is unavailable without a validated team scope. + + ) + } + + // Show loading state + if (employeesLoading) { + return ( + + Loading riders... + + ) + } + + // Show error state + if (employeesError) { + return ( + + + + Unable to load riders + + + {employeesError.message || 'Please check your connection and try again'} + + + ) + } + + return ( + + {/* Breadcrumbs */} + {breadcrumbItems.length > 0 && } + + + + {/* Search and Stats */} + + + + + + + {/* `status` is not a field on asset.team.member — the model has + no state concept at all, so the old "N active / N inactive" + counters here could only ever render 0. Show the counts that + are real instead. */} + + {filteredEmployees.length === employees.length + ? `${employees.length} riders` + : `${filteredEmployees.length} of ${employees.length} riders`} + + + + + {/* Riders Grid */} + + {filteredEmployees.map((employee: any) => ( + handleViewRider(employee.id.toString())} + > + + {/* Rider Info */} + + + + {employee.name} + + + + {employee.member_type || 'Member type unavailable'} + + + + + + + + + {employee.email} + + + + {employee.operator?.phone && ( + + + + {employee.operator.phone} + + + )} + + + + + {employee.member_type || 'Member type unavailable'} + + + + + Team: unavailable in member contract + + + {/* Rider Avatar and Actions */} + + + + {getInitials(employee.name)} + + + + + + + + + + + ))} + + + {/* Empty State */} + {filteredEmployees.length === 0 && ( + + + + {searchQuery ? 'No riders found' : 'No riders yet'} + + + {searchQuery + ? 'Try adjusting your search terms.' + : 'Add your first rider to get started with assignments.' + } + + {!searchQuery && ( + + )} + + )} + + + + ) + } + ❯ packages/app/features/asset/api/__tests__/team-scope-contracts.test.ts:25:25 23| 24| test('keeps rider actions on existing team and assignment routes', (… 25| expect(riderSource).toContain("onNavigate?.('/assignments/new')") | ^ 26| expect(riderSource).toContain("onNavigate?.('/riders/new')") 27| }) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/5]⎯ FAIL packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx > AssetAssignmentScreen — handover/return failure surfacing > "Hand over" is disabled until both an asset and an operator are picked TestingLibraryElementError: Unable to find an element with the text: Hand over. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style  
       Asset Assignments 
   New Assignment               Select a team to manage assignments.   Assets and operators are unavailable without a validated team scope.       ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 ❯ packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx:124:13 122| const { getByText } = render(React.createElement(AssetAssignmentSc… 123| fireEvent.click(getByText('New Assignment')) 124| expect((getByText('Hand over') as HTMLButtonElement).disabled).toB… | ^ 125| 126| fireEvent.click(getByText('KA-01-AB-1234')) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/5]⎯ FAIL packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx > AssetAssignmentScreen — handover/return failure surfacing > a successful handover calls createAssignment and refetches TestingLibraryElementError: Unable to find an element with the text: KA-01-AB-1234. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style  
       Asset Assignments 
   New Assignment               Select a team to manage assignments.   Assets and operators are unavailable without a validated team scope.       ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 ❯ openFormAndSelect packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx:100:19 98| function openFormAndSelect(getByText: (t: string) => HTMLElement) { 99| fireEvent.click(getByText('New Assignment')) 100| fireEvent.click(getByText('KA-01-AB-1234')) | ^ 101| fireEvent.click(getByText('Ravi')) 102| } ❯ packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx:135:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/5]⎯ FAIL packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx > AssetAssignmentScreen — handover/return failure surfacing > a failed handover renders the error banner and does not refetch TestingLibraryElementError: Unable to find an element with the text: KA-01-AB-1234. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style  
       Asset Assignments 
   New Assignment               Select a team to manage assignments.   Assets and operators are unavailable without a validated team scope.       ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 ❯ openFormAndSelect packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx:100:19 98| function openFormAndSelect(getByText: (t: string) => HTMLElement) { 99| fireEvent.click(getByText('New Assignment')) 100| fireEvent.click(getByText('KA-01-AB-1234')) | ^ 101| fireEvent.click(getByText('Ravi')) 102| } ❯ packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx:148:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/5]⎯ FAIL packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx > AssetAssignmentScreen — handover/return failure surfacing > does not render unfiltered assignment history in a team view TestingLibraryElementError: Unable to find an element with the text: Assignment history unavailable: the server does not provide a team filter.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style  
       Asset Assignments 
                Select an asset to view its current assignment.       ❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17 ❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19 ❯ packages/app/features/asset/screens/__tests__/AssetAssignmentScreen.test.tsx:159:12 157| test('does not render unfiltered assignment history in a team view',… 158| const { getByText, queryByText } = render(React.createElement(Asse… 159| expect(getByText('Assignment history unavailable: the server does … | ^ 160| expect(queryByText('Return')).toBeNull() 161| }) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/5]⎯ Test Files 2 failed | 106 passed | 1 skipped (109) Tests 5 failed | 902 passed | 10 skipped (917) Start at 06:45:37 Duration 44.70s (transform 3.52s, setup 0ms, collect 28.21s, tests 13.51s, environment 58.67s, prepare 9.60s) Showing logs for build greencapitaltrade/flash/pr-412 #4 stage from-build-pack and container step-unit-tests-errors commented on pull request #412 on repository greencapitaltrade/flash  Pipeline failed on stage 'from-build-pack' : container 'step-unit-tests-errors'. The execution of the pipeline has stopped.