[ACA-1634] update peopleApi to use alfresco-ja-api-node in e2e (#558)

* update peopleApi to use alfresco-ja-api-node in e2e

* small code improvement
This commit is contained in:
Adina Parpalita 2018-08-09 20:51:45 +03:00 committed by Denys Vuika
parent b8cc5422f4
commit 8c76d92f47
29 changed files with 76 additions and 80 deletions

View File

@ -55,7 +55,7 @@ describe('Create folder', () => {
const { dataTable } = personalFilesPage; const { dataTable } = personalFilesPage;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE)) .then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE))
.then(() => apis.admin.nodes.createFolders([ folderName1 ], `Sites/${siteName}/documentLibrary`)) .then(() => apis.admin.nodes.createFolders([ folderName1 ], `Sites/${siteName}/documentLibrary`))
.then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) .then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER))

View File

@ -43,7 +43,7 @@ describe('Delete and undo delete', () => {
const { dataTable, toolbar } = page; const { dataTable, toolbar } = page;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username).then(done); apis.admin.people.createUser({ username }).then(done);
}); });
afterAll(done => { afterAll(done => {

View File

@ -58,7 +58,7 @@ describe('Edit folder', () => {
const editButton = personalFilesPage.toolbar.actions.getButtonByTitleAttribute('Edit'); const editButton = personalFilesPage.toolbar.actions.getButtonByTitleAttribute('Edit');
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE)) .then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE))
.then(() => apis.admin.nodes.createFolders([ folderName ], `Sites/${siteName}/documentLibrary`)) .then(() => apis.admin.nodes.createFolders([ folderName ], `Sites/${siteName}/documentLibrary`))
.then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) .then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER))

View File

@ -51,7 +51,7 @@ describe('Mark items as favorites', () => {
const { dataTable, toolbar } = page; const { dataTable, toolbar } = page;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.user.nodes.createFile( file1NotFav ).then(resp => file1Id = resp.data.entry.id)) .then(() => apis.user.nodes.createFile( file1NotFav ).then(resp => file1Id = resp.data.entry.id))
.then(() => apis.user.nodes.createFile( file2NotFav ).then(resp => file2Id = resp.data.entry.id)) .then(() => apis.user.nodes.createFile( file2NotFav ).then(resp => file2Id = resp.data.entry.id))
.then(() => apis.user.nodes.createFile( file3Fav ).then(resp => file3Id = resp.data.entry.id)) .then(() => apis.user.nodes.createFile( file3Fav ).then(resp => file3Id = resp.data.entry.id))

View File

@ -50,7 +50,7 @@ describe('Permanently delete from Trash', () => {
const { dataTable, toolbar } = trashPage; const { dataTable, toolbar } = trashPage;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.user.nodes.createFiles([ file1, file2 ])) .then(() => apis.user.nodes.createFiles([ file1, file2 ]))
.then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id)) .then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id))
.then(() => apis.user.nodes.createFolders([ folder1, folder2 ])) .then(() => apis.user.nodes.createFolders([ folder1, folder2 ]))

View File

@ -43,7 +43,7 @@ describe('Restore from Trash', () => {
const { dataTable, toolbar } = page; const { dataTable, toolbar } = page;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => loginPage.loginWith(username)) .then(() => loginPage.loginWith(username))
.then(done); .then(done);
}); });

View File

@ -66,7 +66,7 @@ describe('Toolbar actions - multiple selection : ', () => {
const { toolbar } = page; const { toolbar } = page;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(user1) apis.admin.people.createUser({ username: user1 })
.then(() => apis.user.nodes.createFiles([ file1 ]).then(resp => file1Id = resp.data.entry.id)) .then(() => apis.user.nodes.createFiles([ file1 ]).then(resp => file1Id = resp.data.entry.id))
.then(() => apis.user.nodes.createFiles([ file2 ]).then(resp => file2Id = resp.data.entry.id)) .then(() => apis.user.nodes.createFiles([ file2 ]).then(resp => file2Id = resp.data.entry.id))
.then(() => apis.user.nodes.createFolders([ folder1 ]).then(resp => folder1Id = resp.data.entry.id)) .then(() => apis.user.nodes.createFolders([ folder1 ]).then(resp => folder1Id = resp.data.entry.id))
@ -198,7 +198,7 @@ describe('Toolbar actions - multiple selection : ', () => {
describe('File Libraries', () => { describe('File Libraries', () => {
beforeAll(done => { beforeAll(done => {
apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC) apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC)
.then(() => apis.admin.people.createUser(user2)) .then(() => apis.admin.people.createUser({ username: user2 }))
.then(() => apis.admin.sites.addSiteMember(siteName, user1, SITE_ROLES.SITE_MANAGER)) .then(() => apis.admin.sites.addSiteMember(siteName, user1, SITE_ROLES.SITE_MANAGER))
.then(() => apis.admin.sites.addSiteMember(siteName, user2, SITE_ROLES.SITE_CONSUMER)) .then(() => apis.admin.sites.addSiteMember(siteName, user2, SITE_ROLES.SITE_CONSUMER))
.then(() => apis.admin.nodes.createFiles([ file1Admin, file2Admin ], `Sites/${siteName}/documentLibrary`)) .then(() => apis.admin.nodes.createFiles([ file1Admin, file2Admin ], `Sites/${siteName}/documentLibrary`))

View File

@ -53,7 +53,7 @@ describe('Toolbar actions - single selection : ', () => {
const { dataTable, toolbar } = page; const { dataTable, toolbar } = page;
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.admin.people.createUser(username); await apis.admin.people.createUser({ username });
fileUserId = (await apis.user.nodes.createFiles([fileUser])).data.entry.id; fileUserId = (await apis.user.nodes.createFiles([fileUser])).data.entry.id;
fileForDeleteId = (await apis.user.nodes.createFiles([fileForDelete])).data.entry.id; fileForDeleteId = (await apis.user.nodes.createFiles([fileForDelete])).data.entry.id;
@ -356,7 +356,7 @@ describe('Toolbar actions - single selection : ', () => {
await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
const docLibId = await apis.admin.sites.getDocLibId(siteName); const docLibId = await apis.admin.sites.getDocLibId(siteName);
await apis.admin.people.createUser(username2); await apis.admin.people.createUser({ username: username2 });
await apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_MANAGER); await apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_MANAGER);
await apis.admin.sites.addSiteMember(siteName, username2, SITE_ROLES.SITE_CONSUMER); await apis.admin.sites.addSiteMember(siteName, username2, SITE_ROLES.SITE_CONSUMER);

View File

@ -45,7 +45,7 @@ describe('Upload files', () => {
const { dataTable } = page; const { dataTable } = page;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.user.nodes.createFolder(folder1).then(resp => folder1Id = resp.data.entry.id)) .then(() => apis.user.nodes.createFolder(folder1).then(resp => folder1Id = resp.data.entry.id))
.then(() => loginPage.loginWith(username)) .then(() => loginPage.loginWith(username))

View File

@ -61,14 +61,12 @@ describe('Login', () => {
beforeAll(done => { beforeAll(done => {
Promise Promise
.all([ .all([
peopleApi.createUser(testUser), peopleApi.createUser({ username: testUser }),
peopleApi.createUser(russianUser.username, russianUser.password), peopleApi.createUser(russianUser),
peopleApi.createUser(johnDoe.username, johnDoe.password, { peopleApi.createUser(johnDoe),
firstName: johnDoe.firstName, peopleApi.createUser({ username: disabledUser })
lastName: johnDoe.lastName .then(() => peopleApi.disableUser(disabledUser)),
}), peopleApi.createUser(testUser2)
peopleApi.createUser(disabledUser).then(() => peopleApi.disableUser(disabledUser)),
peopleApi.createUser(testUser2.username, testUser2.password)
]) ])
.then(done); .then(done);
}); });

View File

@ -40,7 +40,7 @@ describe('Logout', () => {
beforeAll((done) => { beforeAll((done) => {
peopleApi peopleApi
.createUser(johnDoe) .createUser({ username: johnDoe })
.then(done); .then(done);
}); });

View File

@ -43,7 +43,7 @@ describe('Empty list views', () => {
const { dataTable } = page; const { dataTable } = page;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => loginPage.loginWith(username)) .then(() => loginPage.loginWith(username))
.then(done); .then(done);
}); });

View File

@ -52,7 +52,7 @@ describe('Favorites', () => {
const { breadcrumb } = favoritesPage.toolbar; const { breadcrumb } = favoritesPage.toolbar;
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.admin.people.createUser(username); await apis.admin.people.createUser({ username });
await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
const docLibId = await apis.admin.sites.getDocLibId(siteName); const docLibId = await apis.admin.sites.getDocLibId(siteName);

View File

@ -55,7 +55,7 @@ describe('File Libraries', () => {
beforeAll(done => { beforeAll(done => {
Promise Promise
.all([ .all([
apis.admin.people.createUser(username), apis.admin.people.createUser({ username }),
apis.admin.sites.createSite(sitePublic, SITE_VISIBILITY.PUBLIC), apis.admin.sites.createSite(sitePublic, SITE_VISIBILITY.PUBLIC),
apis.admin.sites.createSite(siteModerated, SITE_VISIBILITY.MODERATED, siteDescription), apis.admin.sites.createSite(siteModerated, SITE_VISIBILITY.MODERATED, siteDescription),
apis.admin.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE, null), apis.admin.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE, null),

View File

@ -47,7 +47,7 @@ describe('Special permissions', () => {
xit(''); xit('');
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username).then(done); apis.admin.people.createUser({ username }).then(done);
}); });
describe('file not displayed if user no longer has permissions on it', () => { describe('file not displayed if user no longer has permissions on it', () => {

View File

@ -51,7 +51,7 @@ describe('Personal Files', () => {
beforeAll(done => { beforeAll(done => {
Promise Promise
.all([ .all([
apis.admin.people.createUser(username), apis.admin.people.createUser({ username }),
apis.admin.nodes.createFolders([ adminFolder ]) apis.admin.nodes.createFolders([ adminFolder ])
]) ])
.then(() => apis.user.nodes.createFolders([ userFolder ])) .then(() => apis.user.nodes.createFolders([ userFolder ]))

View File

@ -52,7 +52,7 @@ describe('Recent Files', () => {
const { breadcrumb } = recentFilesPage.toolbar; const { breadcrumb } = recentFilesPage.toolbar;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.user.nodes.createFolders([ folderName ])).then(resp => folderId = resp.data.entry.id) .then(() => apis.user.nodes.createFolders([ folderName ])).then(resp => folderId = resp.data.entry.id)
.then(() => apis.user.nodes.createFiles([ fileName1 ], folderName)) .then(() => apis.user.nodes.createFiles([ fileName1 ], folderName))
.then(() => apis.user.nodes.createFiles([ fileName2 ])).then(resp => file2Id = resp.data.entry.id) .then(() => apis.user.nodes.createFiles([ fileName2 ])).then(resp => file2Id = resp.data.entry.id)

View File

@ -53,7 +53,7 @@ describe('Shared Files', () => {
const { breadcrumb } = sharedFilesPage.toolbar; const { breadcrumb } = sharedFilesPage.toolbar;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC)) .then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC))
.then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) .then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER))
.then(() => apis.admin.nodes.createFiles([ fileAdmin ], `Sites/${siteName}/documentLibrary`)) .then(() => apis.admin.nodes.createFiles([ fileAdmin ], `Sites/${siteName}/documentLibrary`))

View File

@ -57,7 +57,7 @@ describe('File / folder tooltips', () => {
const { dataTable } = page; const { dataTable } = page;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.user.nodes.createFolder( parent )) .then(() => apis.user.nodes.createFolder( parent ))
.then(resp => parentId = resp.data.entry.id) .then(resp => parentId = resp.data.entry.id)

View File

@ -59,7 +59,7 @@ describe('Trash', () => {
const { breadcrumb } = trashPage.toolbar; const { breadcrumb } = trashPage.toolbar;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.admin.nodes.createFiles([ fileAdmin ]).then(resp => fileAdminId = resp.data.entry.id)) .then(() => apis.admin.nodes.createFiles([ fileAdmin ]).then(resp => fileAdminId = resp.data.entry.id))
.then(() => apis.admin.nodes.createFolders([ folderAdmin ]).then(resp => folderAdminId = resp.data.entry.id)) .then(() => apis.admin.nodes.createFolders([ folderAdmin ]).then(resp => folderAdminId = resp.data.entry.id))
.then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC)) .then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC))

View File

@ -55,7 +55,7 @@ describe('Breadcrumb', () => {
}; };
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username) apis.admin.people.createUser({ username })
.then(() => apis.user.nodes.createFolder(parent)).then(resp => parentId = resp.data.entry.id) .then(() => apis.user.nodes.createFolder(parent)).then(resp => parentId = resp.data.entry.id)
.then(() => apis.user.nodes.createFolder(subFolder1, parentId)).then(resp => subFolder1Id = resp.data.entry.id) .then(() => apis.user.nodes.createFolder(subFolder1, parentId)).then(resp => subFolder1Id = resp.data.entry.id)
.then(() => apis.user.nodes.createFolder(subFolder2, subFolder1Id)).then(resp => subFolder2Id = resp.data.entry.id) .then(() => apis.user.nodes.createFolder(subFolder2, subFolder1Id)).then(resp => subFolder2Id = resp.data.entry.id)
@ -219,7 +219,7 @@ describe('Breadcrumb', () => {
beforeAll(done => { beforeAll(done => {
logoutPage.load() logoutPage.load()
.then(() => apis.admin.people.createUser(user2)) .then(() => apis.admin.people.createUser({ username: user2 }))
.then(() => user2Api.nodes.createFolder(userFolder).then(resp => userFolderId = resp.data.entry.id)) .then(() => user2Api.nodes.createFolder(userFolder).then(resp => userFolderId = resp.data.entry.id))
.then(() => loginPage.loginWithAdmin()) .then(() => loginPage.loginWithAdmin())
.then(done); .then(done);

View File

@ -52,7 +52,7 @@ describe('Pagination on Favorites', () => {
const file = `file-${Utils.random()}.txt`; let fileId; const file = `file-${Utils.random()}.txt`; let fileId;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username).then(done); apis.admin.people.createUser({ username }).then(done);
}); });
xit(''); xit('');

View File

@ -51,7 +51,7 @@ describe('Pagination on Personal Files', () => {
const file = `file-${Utils.random()}.txt`; let fileId; const file = `file-${Utils.random()}.txt`; let fileId;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username).then(done); apis.admin.people.createUser({ username }).then(done);
}); });
xit(''); xit('');

View File

@ -51,7 +51,7 @@ describe('Pagination on Recent Files', () => {
const file = `file-${Utils.random()}.txt`; let fileId; const file = `file-${Utils.random()}.txt`; let fileId;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username).then(done); apis.admin.people.createUser({ username }).then(done);
}); });
xit(''); xit('');

View File

@ -52,7 +52,7 @@ describe('Pagination on Shared Files', () => {
const file = `file-${Utils.random()}.txt`; let fileId; const file = `file-${Utils.random()}.txt`; let fileId;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username).then(done); apis.admin.people.createUser({ username }).then(done);
}); });
xit(''); xit('');

View File

@ -51,7 +51,7 @@ describe('Pagination on Trash', () => {
const file = `file-${Utils.random()}.txt`; let fileId; const file = `file-${Utils.random()}.txt`; let fileId;
beforeAll(done => { beforeAll(done => {
apis.admin.people.createUser(username).then(done); apis.admin.people.createUser({ username }).then(done);
}); });
xit(''); xit('');

View File

@ -23,21 +23,31 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
export class Person { export interface PersonModel {
id?: string; username?: string;
password?: string; password?: string;
firstName?: string; firstName?: string;
lastName?: string; lastName?: string;
email?: string; email?: string;
enabled?: boolean;
properties?: any; properties?: any;
}
constructor(username: string, password: string, details: Person) { export class Person {
this.id = username; id: string;
this.password = password || username; password: string;
this.firstName = username; firstName: string;
this.lastName = username; lastName: string;
this.email = `${username}@alfresco.com`; email: string;
enabled: boolean;
properties: any;
Object.assign(this, details); constructor(user: PersonModel) {
this.id = user.username;
this.password = user.password || user.username;
this.firstName = user.firstName || user.username;
this.lastName = user.lastName || user.username;
this.email = user.email || `${user.username}@alfresco.com`;
this.enabled = user.enabled || true;
} }
} }

View File

@ -23,48 +23,36 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { RepoApi } from '../repo-api'; import { PersonModel, Person } from './people-api-models';
import { Person } from './people-api-models'; import { RepoApiNew } from '../repo-api-new';
export class PeopleApi extends RepoApi { export class PeopleApi extends RepoApiNew {
getUser(username: string) {
return this constructor(username?, password?) {
.get(`/people/${username}`) super(username, password);
.catch(this.handleError);
} }
updateUser(username: string, details?: Person): Promise<any> { async createUser(user: PersonModel) {
if (details.id) { const person = new Person(user);
delete details.id; await this.apiAuth();
} return await this.alfrescoJsApi.core.peopleApi.addPerson(person);
return this
.put(`/people/${username}`, { data: details })
.catch(this.handleError);
} }
createUser(username: string, password?: string, details?: Person): Promise<any> { async getUser(username: string) {
const person: Person = new Person(username, password, details); await this.apiAuth();
const onSuccess = (response) => response; return await this.alfrescoJsApi.core.peopleApi.getPerson(username);
const onError = (response) => {
return (response.statusCode === 409)
? Promise.resolve(this.updateUser(username, person))
: Promise.reject(response);
};
return this
.post(`/people`, { data: person })
.then(onSuccess, onError)
.catch(this.handleError);
} }
disableUser(username: string): Promise<any> { async updateUser(username: string, userDetails?: PersonModel) {
return this.put(`/people/${username}`, { data: { enabled: false } }) await this.apiAuth();
.catch(this.handleError); return this.alfrescoJsApi.core.peopleApi.updatePerson(username, userDetails);
} }
changePassword(username: string, newPassword: string) { async disableUser(username: string) {
return this.put(`/people/${username}`, { data: { password: newPassword } }) return await this.updateUser(username, { enabled: false });
.catch(this.handleError); }
async changePassword(username: string, newPassword: string) {
return await this.updateUser(username, { password: newPassword });
} }
} }

View File

@ -46,7 +46,7 @@ export class RepoClient {
} }
get people () { get people () {
return new PeopleApi(this.auth, this.config); return new PeopleApi(this.auth.username, this.auth.password);
} }
get nodes() { get nodes() {