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.
session-desktop/integration_test/add_friends_test.js

117 lines
3.5 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('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.equal(true);
await app.client
.element(ConversationPage.sessionIDInput)
.setValue(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.equal(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
);
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
)
);
await app2.client.isExisting(ConversationPage.acceptFriendRequestButton);
// 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
);
});
});