• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kobotoolbox / kpi / 28599388330
81%
master: 76%

Build:
Build:
LAST BUILD BRANCH: dependabot/github_actions/actions-deps-2d1112a488
DEFAULT BRANCH: master
Ran 02 Jul 2026 02:55PM UTC
Jobs 10
Files 892
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Jul 2026 02:51PM UTC coverage: 81.437% (+0.003%) from 81.434%
28599388330

push

github

web-flow
refactor(projectSettings): split files DEV-2214 (#7193)

### 💭 Notes

Split monolithic ProjectSettings component (1320 lines) into modular
structure with separate step components, shared utilities, comprehensive
tests, and Storybook stories.

The ProjectSettings component handles three contexts: creating new
projects, replacing project forms, and editing existing project
settings. This refactor breaks it into:

- **5 step components** (FormSource, ChooseTemplate, UploadFile,
ImportUrl, ProjectDetails)
- **Shared utilities** (types.ts, utils.ts, constants.ts with 19 unit
tests)
- **7 Storybook stories** covering all wizard steps and contexts
- **Mock infrastructure improvements** using assetFactory pattern for
templates

Main component reduced from 1320 to ~780 lines. No functional
changes—all three contexts work the same way they did before.

Changes here:

**New Directory Structure:**
- `jsapp/js/project/ProjectSettings/` - New home for everything
  - `ProjectSettings.tsx` - Main orchestrator component
  - `ProjectSettings.module.scss` - Moved from modalForms
  - `index.ts` - Public exports
  - `types.ts` - All TypeScript interfaces
  - `constants.ts` - STEPS constant with type-safe StepName, step titles
- `utils.ts` - Pure helper functions (validation, field initialization,
URI parsing)
- `utils.tests.ts` - 19 unit tests for validateProjectFields with helper
functions

**Step Components** (`steps/` directory):
- `StepFormSource.tsx` - 4 big source selection buttons
- `StepChooseTemplate.tsx` - Template browser with TemplatesList
- `StepUploadFile.tsx` - Dropzone for XLSForm upload
- `StepImportUrl.tsx` - URL input with validation
- `StepProjectDetails.tsx` - Large form with all metadata fields

**Shared Components** (`components/` directory):
- `BackButton.tsx` - Reusable back navigation button

**Storybook** (`ProjectSettings.stories.tsx`):
- 7 stories covering: ModalStep_ChooseSource,
ModalStep_BuildFromScratch, ModalStep_ChooseTemplate,
ModalStep... (continued)

9260 of 12600 branches covered (73.49%)

30213 of 37100 relevant lines covered (81.44%)

5.52 hits per line

Jobs
ID Job ID Ran Files Coverage
1 28599388330.1 02 Jul 2026 02:55PM UTC 888
49.62
2 28599388330.2 02 Jul 2026 02:56PM UTC 888
44.45
3 28599388330.3 02 Jul 2026 02:56PM UTC 888
52.97
4 28599388330.4 02 Jul 2026 02:57PM UTC 890
45.81
5 28599388330.5 02 Jul 2026 02:57PM UTC 890
54.24
6 28599388330.6 02 Jul 2026 02:59PM UTC 890
66.64
7 28599388330.7 02 Jul 2026 02:59PM UTC 888
58.95
8 28599388330.8 02 Jul 2026 02:59PM UTC 890
50.96
9 28599388330.9 02 Jul 2026 03:00PM UTC 890
60.11
10 28599388330.10 02 Jul 2026 03:01PM UTC 892
68.95
Source Files on build 28599388330
  • Tree
  • List 892
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • b815fcbf on github
  • Prev Build on main (#28599329881)
  • Next Build on main (#28600649892)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc