Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge tslint-refactor into master #156

Merged
merged 127 commits into from
May 9, 2019
Merged

Merge tslint-refactor into master #156

merged 127 commits into from
May 9, 2019

Conversation

VivekMChawla
Copy link
Contributor

@VivekMChawla VivekMChawla commented May 9, 2019

This PR contains

So, a lot more than just tslint fixes in this one, in spite of the name of this branch. :-)

Sometimes when a CLI command gets a failed response from Salesforce, the
JSON response from the server is NOT sent to the "result" key in the
JSON that's returned by the CLI. Instead, it gets embedded as part of
the "stack" key and needs to be extracted.

Related to: #117
Not sure why these changes were made, but I don't see any harm in
keeping them in place.  Adding to the v0.0.93 build.
Bringing plugin in-line with latest standards from sfdx plugins:generate
Now tracking .oclif.manifest.json and npm-shrinkwrap.json.
Updated .gitignore to ensure proper tracking.
Bringing the latest dependencies and scripts standards the package.json
that's auto-generated by sfdx plugins:generate.  Main changes are the
explicit use of the Instanbul CLI (nyc) and the addition of a "topics"
stanza inside of the "oclif" stanza.
Update .circleci/config.yml to match the current default config created
by sfdx plugins:generate

Related to: #133
Start explorations of automated testing by bringing the boilerplate test
code up to the most recent version from sfdx plugins:generate

Related to: #133
Delete the old "hello world" mocha tests and add my first test for
falcon:adk:create.

Related to: #133
Customize tslint.json so that style settings fall in line with the
standards we're already using on this project.
We will separate unit and integration tests in order to make it clear
when running CI jobs which type of test is being run.  Also, we'll focus
the postpack tests on integration tests.

Related to: #133
Some tests will require files to be saved to the local environment.
Those files should be stored in this folder, then removed at the start
of each test run.
Create a custom CLI command executor that is capable of accepting mock
stdin input.  This was necessary to properly test Falcon commands that
expect interactive user input to properly function.

Related to: #133
Add environment variables that are set during test initialization to
ensure portability between local and CI Build environments

Related to: #133
Modify logic that tests the falcon:adk:create command. Finalize the
first true integration test (works on local, not sure if it will work
on CircleCI yet).

Related to: #133
Update dependency versions.  Add new development dependencies
(cross-spawn and del) to support automated tests in Mocha.

Related to: #133
Using the sfdx-isv/testbed-falcon-adk project as a baseline, this group
of files is the first commit related to creating a set of ADK test
projects for use during automated testing.

Related to: #133
Fixed missing code to make use of the -f flag in falcon:adk:install.
Renamed --configfile flag to --recipefile (single char remains -f).
Cleaned up multiple ts-lint errors/warnings in the files touched
by this fix. Includes updates to tslint rules.

Related to: #139
Utilize additional ExecOptions properties that specify whether stdout
and stderr have output echoed to the console during tests.
Set the "falcon:adk:create" test to skip to ease dev of other tests.

Related to: #133
Create falcon/adk/install.test.ts.
Create secondary recipe file falcon-test-01B-recipe.json.
Update init.js with env var that tracks location of Falcon Test TempDir.

Related to: #133
Getting close enough on the core framework and unit test code to want
to start working on the CirlceCI side of things.  This commit forms a
solid baseline to use while working on .circleci/config.yml

Related to: #133
Move the "module" sfdx-falcon-async into a single utils file
sfdx-falcon-util/async.ts.
Add a 3 second delay to before beginning extraction operations.  Update
the "error" event handler for the unzipper call to parse incoming error
objects and construct a well-formed SfdxFalconError.
Previously, only the "restart" Confirmation Answer was being checked
inside of the confirmRestart() func. This led to less flexible behavior than
intended. By adding a check for  the "proceed" Confirmation Answer, we
give the Confirm Restart prompts a way to guarantee that the prompt
group does not repeat.
Moved the ShellExecResult interface into the Falcon Types module. Renamed
a couple things. Functionality is the same.
For the "finalize Git" tasks, have all tasks after the first Git
executable check look for success/failure of each previous step and
SKIP themselves if the previous step was unsuccessful.  This required
that we set the "exitOnError" option to FALSE for the Git operations
task group, then process the outcome of the task run as a possible
exception.
Added "title" attribute to Interview Groups. Created titles for all
interview groups in create-appx-package-project.ts. Fixed spacing issues
after confirmation questions are show for Prompts.
Commented out the Unmanaged 1GP, Unlocked, and Managed 2GP package type
options. This effectively disables creation of projects with those
options.
Debug code was causing the questions-building function to be run TWICE
when SfdxFalconPrompt.prompt() was called. To fix, we now extract the
questions into a local var, then use that var for debug and the Inquirer
prompt() call.
Ensure that if someone picks a "1GP:managed" project type, they do not
see any packaging orgs that only have unmanaged packages.
Short inquirer lists look better when they have a leading separator, so I
added one to the project-type choice list.
Wire up the "Environment Hub" check code. The Yeoman "initialization"
tasks can now successfully identify EnvHub orgs.
Modify the "standardName" RegEx to allow apostrophes.
Moved Git cloning logic to async in order to provide a consistent UX for
times when the Falcon plugin is "doing something". Starting this effort
with falcon:apk:clone
Prior to this fix, if the packaging org did not have any uploaded
package versions, an exception would be thrown when trying to access
the latest release or beta package version IDs.  With this fix, if no
package versions have been uploaded, the string "UNAVAILABLE" is
substituted in.
Continued work towards automating the selection of package org alias on
project cloning.
Add the logic needed to automatically determine the pkgOrgAlias based
on the managedPackageId value from the cloned project's
sfdx-project.json file.
Fixed "falcon:apk:clone not running Git Remote URI validation during
command initialization". Fixed "git remote seen as invalid if remote
repo has no commits during falcon:apk:create".
Wired up create-appx-demo-project.ts with the new way of doing Yeoman
interviews and file creation.
At this point, most changes to the four Yeoman Generators is done. Any
changes from here should be bug fixes or adjustments due to new APK/ADK
project boilerplate.
Final push to close out all of the tslint errors.  Pretty sure I got 'em
all. We'll see.
Due to changes in the CLI in v45.8.1 (March 28, 2019), all --json output
started to come out color-coded. This broke our parsing logic. Shutting
off terminal colors in the shell.exec() code prevents the parsing
errors.
Update mock input sequence inside create.test.ts. Update testbed ADK
project to use the latest schema for sfdx-project.json. Turn tslint back
on as part of post-test actions.

Related to: #139
This is an auto-generated file, but I can't figure out when it actually gets
updated.  I thought it was when npm install was run, but it has remained
unbuilt for awhile now.  The NPM shrinkwrap file is still being updated
though. I'm going to delete this for now.
This is the final batch of fixes to eliminate all tslint errors. Hooray!

Related to: #139
@VivekMChawla VivekMChawla merged commit 6dfc572 into master May 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant