summaryrefslogtreecommitdiffstats
path: root/pkg/integration
AgeCommit message (Collapse)Author
2023-07-30Add test for opening lazygit in the worktree of a bare repoJesse Duffield
2023-07-30Update repo switch logicJesse Duffield
We now always re-use the state of the repo if we're returning to it, and we always reset the windows to their default tabs. We reset to default tabs because it's easy to implement. If people want to: * have tab states be retained when switching * have tab states specific to the current repo retained when switching back Then we'll need to revisit this
2023-07-30Add test for retained context focus when switching worktreesJesse Duffield
2023-07-30Support fastforwarding worktreeJesse Duffield
2023-07-30Add more worktree testsJesse Duffield
2023-07-30Add worktree tests for removing/detachingJesse Duffield
2023-07-30Add worktree integration testsJesse Duffield
2023-07-30Fix testsJesse Duffield
Going and fixing up some submodule tests which were broken by bad assumptions with worktree code
2023-07-30Fix testsJesse Duffield
We now change directories to the repo on startup so we don't need to determine the test path in some special way
2023-07-29When bisecting, always mark the current commit as good/bad, not the selectedStefan Haller
For marking as good or bad, the current commit is pretty much always the one you want to mark, not the selected. It's different for skipping; sometimes you know already that a certain commit doesn't compile, for example, so you might navigate there and mark it as skipped. So in the case that the current commit is not the selected one, we now offer two separate menu entries for skipping, one for the current commit and one for the selected.
2023-07-29Add bisect menu entry that lets you choose bisect termsStefan Haller
This can be useful if you want to find the commit that fixed a bug (you'd use "broken/fixed" instead of "good/bad" in this case), or if you want to find the commit that brought a big performance improvement (use "slow/fast"). It's pretty mind-bending to have to use "good/bad" in these cases, and swap their meanings in your head. Thankfully, lazygit already had support for using custom terms during the bisect (for the case that a bisect was started on the command-line, I suppose), so all that's needed is adding a way to specify them in lazygit.
2023-07-29feat: add os.copyToClipboardCmd to allow for a custom command #1055 (#2784)Jesse Duffield
2023-07-29feat: add os.copyToClipboardCmd to allow for a custom commandRed S
Issue #1055 test: CopyPatchToClipboard (temporary commit for review)
2023-07-23Prompt for commit message when moving a custom patch to a new commitStefan Haller
2023-07-22Better tag creation UXJesse Duffield
Previously we used a single-line prompt for a tag annotation. Now we're using the commit message prompt. I've had to update other uses of that prompt to allow the summary and description labels to be passed in
2023-07-22Use fuzzy search when filtering a viewJesse Duffield
This adds fuzzy filtering instead of exact match filtering, which is more forgiving of typos and allows more efficiency.
2023-07-22Keep track of authors across local commits and branch commits for suggestionsJesse Duffield
Previously, we would only show the authors based on local commits, but sometimes you want to set a commit author to that of a commit on another branch. Now, so long as you've viewed the branch's commits, the author will appear as a suggestion.
2023-07-20Add test for crashing on empty menuJesse Duffield
2023-07-19Add integration test for accordion modeJesse Duffield
2023-07-13Allow checking for merge conflicts after running a custom commandJesse Duffield
We have a use-case to rebind 'm' to the merge action in the branches panel. There's three ways to handle this: 1) For all global keybindings, define a per-panel key that invokes it 2) Give a name to all controller actions and allow them to be invoked in custom commands 3) Allow checking for merge conflicts after running a custom command so that users can add their own 'git merge' custom command that matches the in-built action Option 1 is hairy, Option 2 though good for users introduces new backwards compatibility issues that I don't want to do right now, and option 3 is trivially easy to implement so that's what I'm doing. I've put this under an 'after' key so that we can add more things later. I'm imagining other things like being able to move the cursor to a newly added item etc. I considered always running this hook by default but I'd rather not: it's matching on the output text and I'd rather something like that be explicitly opted-into to avoid cases where we erroneously believe that there are conflicts.
2023-07-10Fix pull rebase testsStefan Haller
It seems that older git versions would drop empty commits when rebasing. Since this aspect is not relevant to what we're testing here, fix this by simply avoiding empty commits in these tests.
2023-07-10Fix conflict testRyooooooga
The test apply_in_reverse_with_conflict.go fails in git versions 2.30.8 and earlier. Apparently the output "Applied patch to 'file2' cleanly" was only added more recently. It's not essential that we check this output.
2023-07-10Fix Shell.Stash() for older versions of gitStefan Haller
Older versions need an explicit "push" subcommand for the -m option to be recognized.
2023-07-10Remove StashWithMessage functionStefan Haller
It's identical to Stash(), so use that.
2023-07-10Use -c init.defaultBranch=master to pass the desired main branch to git initStefan Haller
Older versions of git don't support the -b option yet. However, no version of git complains about the -c option, even when the init.defaultBranch config is not supported.
2023-07-10Remove mainBranch parameter from Shell.Init()Stefan Haller
For older git versions we won't be able to support any other main branch than "master", so hard-code that in Init. This doesn't fix anything for older versions yet; see the next commit for that.
2023-07-10Retry tests on CIJesse Duffield
Now that we are running each test 6 times on CI, the risk of flakiness is higher. I want to fix these tests for good but it'l take time, so we're just retrying for now
2023-07-10Retry on index.lock errorJesse Duffield
I don't know why we're getting index.lock errors but they're impossile to stop anyway given that other processes can be calling git commands. So we're retrying a few times before re-raising. To do this we need to clone the command and the current implementation for that is best-effort. I do worry about the maintainability of that but we'll see how it goes. Also, I thought you'd need to clone the task (if it exists) but now I think not; as long as you don't call done twice on it you should be fine, and you shouldn't be done'ing a task as part of running a command: that should happen higher up.
2023-07-09Fix testJesse Duffield
It's still skipped but it had an error
2023-07-09Only attempt integration tests onceJesse Duffield
I was able to get all integration tests passing 20 times in a row without any retries so I'm going to see if we can rely on that in CI
2023-07-09Remove retry logic in integration testsJesse Duffield
I want to see how we go removing all retry logic within a test. Lazygit should be trusted to tell us when it's no longer busy, and if it that proves false we should fix the issue in the code rather than being lenient in the tests
2023-07-08Add busy count for integration testsJesse Duffield
Integration tests need to be notified when Lazygit is idle so they can progress to the next assertion / user action.
2023-07-03View filtering (#2680)Jesse Duffield
2023-07-03Use searching, not filtering, in file tree viewsJesse Duffield
There's more work to be done to support filtering for these views so we're sticking with searching for now
2023-07-03Fix escape logic for remote branchesJesse Duffield
The remote branches controller was using its own escape method meaning it didn't go through the flow of cancelling an active filter. It's now using the same approach as the sub-commits and commit-files contexts: defining a parent context to return to upon hittin escape.
2023-07-03Add integration tests for searching/filteringJesse Duffield
2023-07-03Add integration tests for discarding filesJesse Duffield
2023-07-02Use comment char config on interactive rebaseGustavo Krieger
Co-authored-by: Stefan Haller <stefan@haller-berlin.de>
2023-07-02Add tests of interactive rebase with custom comment characterGustavo Krieger
2023-06-26Fix the title and text (and variable names) of the Discard Changes promptStefan Haller
The title was saying "Unstage lines", which was just wrong. The text said "Delete lines", which can be seen as a bit misleading; we are only discarding the changes to the selected lines, not deleting the lines themselves. For consistency, rename the config variable skipUnstageLineWarning accordingly.
2023-06-22Add a test for stopping at an "edit" command that conflictsStefan Haller
This test is almost identical to swap_in_rebase_with_conflict.go, except that it sets the commit that will conflict to "edit". This test is interesting because there's special code needed to determine whether an "edit" command conflicted or not, i.e. whether to show the "confl" entry. In this case we do. We have lots of other tests already that have "edit" commands that don't conflict, so that's covered already.
2023-06-22Insert fake todo entry for a conflicting commit that is being appliedStefan Haller
When stopping in a rebase because of a conflict, it is nice to see the commit that git is trying to apply. Create a fake todo entry labelled "conflict" for this, and show the "<-- YOU ARE HERE ---" string for that one (in red) instead of for the real current head.
2023-06-22Add test for rewording a commit and failing with an errorStefan Haller
The point of this test is to verify that the <--- YOU ARE HERE --- display is correct when the last command in a rebase was "reword".
2023-06-22Add test for a pick that fails and gets rescheduledStefan Haller
This test is interesting because it already behaves as desired: since git has rescheduled the "pick" command, we do _not_ want to show a "conflict" entry in this case, as we would see the same commit twice then.
2023-06-22Add test for amending a commit, causing a conflictStefan Haller
2023-06-22Extend test to expect what commits we want to be listed when there's a conflictStefan Haller
2023-06-07Allow discarding changes only from local commitsStefan Haller
We use CommitFilesController also for the files of commits that we show elsewhere, e.g. for branch commits, tags, or stashes. It doesn't make sense to discard changes from those (for stashes it might be possible to implement it somehow, but that would be a new feature), so we disallow it unless we are in the local commits panel.
2023-06-07Better prompt for discarding old file changesStefan Haller
Lazygit knows what kind of file change this is, so there doesn't have to be any "if" in the prompt text.
2023-06-07Fix focus issue when opening recent-repos menu at launchJesse Duffield
I don't know why we were setting the initial context to CurrentSideContext and not just CurrentContext in the first place. If there is no current context in either case it'll default to the files context. So the only issue is if we anticipated that some random context would be focused and we didn't want to activate that. But I can't think of any situation where that would happen.
2023-06-03Fix flakey testJesse Duffield
Whenever we perform an action in a test, we should assert on the result before doing the next action. This prevents issues where the test moves too fast for our code. It would be nice to not have to do this, but for now that's the situation