require "dotenv/load" require "slack_mattermost_emoji/mattermost_client" RSpec.describe SlackMattermostEmoji::MattermostClient do it 'should raise if credentials are missing' do expect do SlackMattermostEmoji::MattermostClient.new( username: '', password: '', domain: '', ) end.to raise_error('Mattermost username, password, and domain are all required') end it 'should be able to log in to mattermost using the provided credentials' do client = SlackMattermostEmoji::MattermostClient.new( username: ENV['MATTERMOST_USERNAME'], password: ENV['MATTERMOST_PASSWORD'], domain: ENV['MATTERMOST_DOMAIN'], ) client.authenticate expect(client.authenticated?).to be true end it 'should handle a bad credentials error' do client = SlackMattermostEmoji::MattermostClient.new( username: ENV['MATTERMOST_USERNAME'], password: 'wrongpassword', domain: ENV['MATTERMOST_DOMAIN'], ) expect { client.authenticate }.to raise_error('Invalid Mattermost credentials') end end