Skip to content

fix: preserve path separators in create command argument#526

Open
srtaalej wants to merge 8 commits intomainfrom
ale-fix-create-path-regression
Open

fix: preserve path separators in create command argument#526
srtaalej wants to merge 8 commits intomainfrom
ale-fix-create-path-regression

Conversation

@srtaalej
Copy link
Copy Markdown
Contributor

@srtaalej srtaalej commented May 7, 2026

Summary

  • Fixes the slack create path/to/my-app regression where path separators were being replaced with dashes, creating a flat path-to-my-app directory instead of preserving the path/to/my-app structure
  • Adds parseAppPath helper that splits user input into path prefix + basename, only kebab-casing the basename
  • Display name for manifests is derived from the raw basename (not the full path)

Behavior

$ slack create my-app              # dir: ./my-app/        manifest: "my-app"
$ slack create "My App"            # dir: ./my-app/        manifest: "My App"
$ slack create path/to/my-app      # dir: ./path/to/my-app/ manifest: "my-app"
$ slack create path/to/My App      # dir: ./path/to/my-app/ manifest: "My App"

Stacks on #521 which handles the display name vs dir name separation.

Test plan

  • TestParseAppPath — 12 cases covering simple names, paths, absolute paths, dot-prefixed, trailing slashes, and error cases
  • Existing TestGetProjectDirectoryName still passes (single-component names)
  • Full test suite (go test ./...) passes
  • Manual: slack create path/to/my-app with existing path/to/ directory → verify nested structure created and manifest has my-app
  • Manual: slack create "My App" → verify dir is my-app, manifest display is My App

srtaalej and others added 5 commits May 4, 2026 16:04
The display_information.name and bot_user.display_name fields in manifest
files were set to the kebab-case directory name (e.g. "my-app") instead of
a human-readable title case name (e.g. "My App").
…ebab

Addresses review feedback — instead of converting the kebab-case
directory name to title case (which mangles names like "TIM" or
"Translator - Translate Languages"), pass the original user-provided
app name through to manifest display fields. This preserves the
user's exact casing and formatting.
Co-authored-by: Eden Zimbelman <eden.zimbelman@salesforce.com>
The getAppDirName function was normalizing the entire input including
path separators, so `slack create path/to/my-app` produced a flat
directory `path-to-my-app` instead of preserving the path structure.

Adds parseAppPath which splits user input into path prefix and basename,
only kebab-casing the basename. The display name for manifests is
derived from the raw basename (preserving original casing).

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@srtaalej srtaalej requested a review from a team as a code owner May 7, 2026 21:16
@srtaalej srtaalej added bug M-T: confirmed bug report. Issues are confirmed when the reproduction steps are documented semver:patch Use on pull requests to describe the release version increment labels May 7, 2026
@srtaalej srtaalej self-assigned this May 7, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 7, 2026

Codecov Report

❌ Patch coverage is 68.42105% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.31%. Comparing base (8b4871f) to head (fca83ad).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
internal/pkg/create/create.go 68.42% 6 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #526      +/-   ##
==========================================
+ Coverage   71.28%   71.31%   +0.02%     
==========================================
  Files         222      222              
  Lines       18698    18711      +13     
==========================================
+ Hits        13329    13343      +14     
  Misses       4188     4188              
+ Partials     1181     1180       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Base automatically changed from ale-fix-display-name-casing to main May 8, 2026 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug M-T: confirmed bug report. Issues are confirmed when the reproduction steps are documented semver:patch Use on pull requests to describe the release version increment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant