You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.6 KiB
JavaScript
120 lines
3.6 KiB
JavaScript
/* eslint-disable func-names */
|
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
const common = require('./common');
|
|
const { afterEach, beforeEach, describe, it } = require('mocha');
|
|
const ConversationPage = require('./page-objects/conversation.page');
|
|
|
|
describe('Add friends', function() {
|
|
let app;
|
|
let app2;
|
|
this.timeout(60000);
|
|
this.slow(15000);
|
|
|
|
beforeEach(async () => {
|
|
await common.killallElectron();
|
|
await common.stopStubSnodeServer();
|
|
|
|
const app1Props = {
|
|
mnemonic: common.TEST_MNEMONIC1,
|
|
displayName: common.TEST_DISPLAY_NAME1,
|
|
stubSnode: true,
|
|
};
|
|
|
|
const app2Props = {
|
|
mnemonic: common.TEST_MNEMONIC2,
|
|
displayName: common.TEST_DISPLAY_NAME2,
|
|
stubSnode: true,
|
|
};
|
|
|
|
[app, app2] = await Promise.all([
|
|
common.startAndStub(app1Props),
|
|
common.startAndStub2(app2Props),
|
|
]);
|
|
});
|
|
|
|
afterEach(async () => {
|
|
await common.stopApp(app);
|
|
await common.killallElectron();
|
|
await common.stopStubSnodeServer();
|
|
});
|
|
|
|
it('addFriends: can add a friend by sessionID', async () => {
|
|
const textMessage = common.generateSendMessageText();
|
|
|
|
await app.client.element(ConversationPage.contactsButtonSection).click();
|
|
await app.client.element(ConversationPage.addContactButton).click();
|
|
await app.client.isExisting(ConversationPage.leftPaneOverlay).should
|
|
.eventually.be.true;
|
|
|
|
await common.setValueWrapper(
|
|
app,
|
|
ConversationPage.sessionIDInput,
|
|
common.TEST_PUBKEY2
|
|
);
|
|
await app.client
|
|
.element(ConversationPage.sessionIDInput)
|
|
.getValue()
|
|
.should.eventually.equal(common.TEST_PUBKEY2);
|
|
|
|
await app.client.element(ConversationPage.nextButton).click();
|
|
await app.client.waitForExist(
|
|
ConversationPage.sendFriendRequestTextarea,
|
|
1000
|
|
);
|
|
|
|
// send a text message to that user (will be a friend request)
|
|
await app.client
|
|
.element(ConversationPage.sendFriendRequestTextarea)
|
|
.setValue(textMessage);
|
|
await app.client.keys('Enter');
|
|
await app.client.waitForExist(
|
|
ConversationPage.existingFriendRequestText(textMessage),
|
|
1000
|
|
);
|
|
|
|
// assure friend request message has been sent
|
|
await common.timeout(3000);
|
|
await app.client.isExisting(ConversationPage.retrySendButton).should
|
|
.eventually.be.false;
|
|
|
|
// wait for left notification Friend Request count to go to 1 and click it
|
|
await app2.client.waitForExist(
|
|
ConversationPage.oneNotificationFriendRequestLeft,
|
|
5000
|
|
);
|
|
await app2.client
|
|
.element(ConversationPage.oneNotificationFriendRequestLeft)
|
|
.click();
|
|
// open the dropdown from the top friend request count
|
|
await app2.client.isExisting(
|
|
ConversationPage.oneNotificationFriendRequestTop
|
|
).should.eventually.be.true;
|
|
await app2.client
|
|
.element(ConversationPage.oneNotificationFriendRequestTop)
|
|
.click();
|
|
|
|
// we should have our app1 friend request here
|
|
await app2.client.isExisting(
|
|
ConversationPage.friendRequestFromUser(
|
|
common.TEST_DISPLAY_NAME1,
|
|
common.TEST_PUBKEY1
|
|
)
|
|
).should.eventually.be.true;
|
|
await app2.client.isExisting(ConversationPage.acceptFriendRequestButton)
|
|
.should.eventually.be.true;
|
|
|
|
// accept the friend request and validate that on both side the "accepted FR" message is shown
|
|
await app2.client
|
|
.element(ConversationPage.acceptFriendRequestButton)
|
|
.click();
|
|
await app2.client.waitForExist(
|
|
ConversationPage.acceptedFriendRequestMessage,
|
|
1000
|
|
);
|
|
await app.client.waitForExist(
|
|
ConversationPage.acceptedFriendRequestMessage,
|
|
5000
|
|
);
|
|
});
|
|
});
|