mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-25 04:34:06 -08:00
fc7aa8bd66
* initial telemetry setup and adjusted pull return * quicksave before merge * feat: add conflicting workflow list to pull modal * feat: update source control pull modal * fix: fix linting issue * feat: add Enter keydown event for submitting source control push modal (no-changelog) feat: add Enter keydown event for submitting source control push modal * quicksave * user workflow table for export * improve telemetry data * pull api telemetry * fix lint * Copy tweaks. * remove authorName and authorEmail and pick from user * rename owners.json to workflow_owners.json * ignore credential conflicts on pull * feat: several push/pull flow changes and design update * pull and push return same data format * fix: add One last step toast for successful pull * feat: add up to date pull toast * fix: add proper Learn more link for push and pull modals * do not await tracking being sent * fix import * fix await * add more sourcecontrolfile status * Minor copy tweak for "More info". * Minor copy tweak for "More info". * ignore variable_stub conflicts on pull * ignore whitespace differences * do not show remote workflows that are not yet created * fix telemetry * fix toast when pulling deleted wf * lint fix * refactor and make some imports dynamic * fix variable edit validation * fix telemetry response * improve telemetry * fix unintenional delete commit * fix status unknown issue * fix up to date toast * do not export active state and reapply versionid * use update instead of upsert * fix: show all workflows when clicking push to git * feat: update Up to date pull translation * fix: update read only env checks * do not update versionid of only active flag changes * feat: prevent access to new workflow and templates import when read only env * feat: send only active state and version if workflow state is not dirty * fix: Detect when only active state has changed and prevent generation a new version ID * feat: improve readonly env messages * make getPreferences public * fix telemetry issue * fix: add partial workflow update based on dirty state when changing active state * update unit tests * fix: remove unsaved changes check in readOnlyEnv * fix: disable push to git button when read onyl env * fix: update readonly toast duration * fix: fix pinning and title input in protected mode * initial commit (NOT working) * working push * cleanup and implement pull * fix getstatus * update import to new method * var and tag diffs are no conflicts * only show pull conflict for workflows * refactor and ignore faulty credentials * add sanitycheck for missing git folder * prefer fetch over pull and limit depth to 1 * back to pull... * fix setting branch on initial connect * fix test * remove clean workfolder * refactor: Remove some unnecessary code * Fixed links to docs. * fix getstatus query params * lint fix * dialog to show local and remote name on conflict * only show remote name on conflict * fix credential expression export * fix: Broken test * dont show toast on pull with empty var/tags and refactor * apply frontend changes from old branch * fix tag with same name import * fix buttons shown for non instance owners * prepare local storage key for removal * refactor: Change wording on pushing and pulling * refactor: Change menu item * test: Fix broken test * Update packages/cli/src/environments/sourceControl/types/sourceControlPushWorkFolder.ts Co-authored-by: Iván Ovejero <ivov.src@gmail.com> --------- Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Giulio Andreini <g.andreini@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com> Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
73 lines
2.7 KiB
TypeScript
73 lines
2.7 KiB
TypeScript
import type { SuperAgentTest } from 'supertest';
|
|
import { SOURCE_CONTROL_API_ROOT } from '@/environments/sourceControl/constants';
|
|
import * as testDb from '../shared/testDb';
|
|
import * as utils from '../shared/utils/';
|
|
import type { User } from '@db/entities/User';
|
|
import * as UserManagementHelpers from '@/UserManagement/UserManagementHelper';
|
|
import Container from 'typedi';
|
|
import { License } from '@/License';
|
|
import { SourceControlPreferencesService } from '@/environments/sourceControl/sourceControlPreferences.service.ee';
|
|
import { SourceControlService } from '@/environments/sourceControl/sourceControl.service.ee';
|
|
import type { SourceControlledFile } from '@/environments/sourceControl/types/sourceControlledFile';
|
|
|
|
let authOwnerAgent: SuperAgentTest;
|
|
let authMemberAgent: SuperAgentTest;
|
|
let owner: User;
|
|
let member: User;
|
|
|
|
const sharingSpy = jest.spyOn(UserManagementHelpers, 'isSharingEnabled').mockReturnValue(true);
|
|
|
|
const testServer = utils.setupTestServer({
|
|
endpointGroups: ['sourceControl', 'license', 'auth'],
|
|
enabledFeatures: ['feat:sourceControl', 'feat:sharing'],
|
|
});
|
|
|
|
beforeAll(async () => {
|
|
const globalOwnerRole = await testDb.getGlobalOwnerRole();
|
|
const globalMemberRole = await testDb.getGlobalMemberRole();
|
|
owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
|
member = await testDb.createUser({ globalRole: globalMemberRole });
|
|
authOwnerAgent = testServer.authAgentFor(owner);
|
|
authMemberAgent = testServer.authAgentFor(member);
|
|
|
|
Container.get(License).isSourceControlLicensed = () => true;
|
|
Container.get(SourceControlPreferencesService).isSourceControlConnected = () => true;
|
|
});
|
|
|
|
describe('GET /sourceControl/preferences', () => {
|
|
test('should return Source Control preferences', async () => {
|
|
await authOwnerAgent
|
|
.get(`/${SOURCE_CONTROL_API_ROOT}/preferences`)
|
|
.expect(200)
|
|
.expect((res) => {
|
|
return 'repositoryUrl' in res.body && 'branchName' in res.body;
|
|
});
|
|
});
|
|
|
|
test('should return repo sync status', async () => {
|
|
Container.get(SourceControlService).getStatus = async () => {
|
|
return [
|
|
{
|
|
id: 'haQetoXq9GxHSkft',
|
|
name: 'My workflow 6 edit',
|
|
type: 'workflow',
|
|
status: 'modified',
|
|
location: 'local',
|
|
conflict: true,
|
|
file: '/Users/michael/.n8n/git/workflows/haQetoXq9GxHSkft.json',
|
|
updatedAt: '2023-07-14T11:24:41.000Z',
|
|
},
|
|
] as SourceControlledFile[];
|
|
};
|
|
await authOwnerAgent
|
|
.get(`/${SOURCE_CONTROL_API_ROOT}/get-status`)
|
|
.query({ direction: 'push', preferLocalVersion: 'true', verbose: 'false' })
|
|
.expect(200)
|
|
.expect((res) => {
|
|
const data: SourceControlledFile[] = res.body.data;
|
|
expect(data.length).toBe(1);
|
|
expect(data[0].id).toBe('haQetoXq9GxHSkft');
|
|
});
|
|
});
|
|
});
|