12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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
-
- it 'should upload emoji to mattermost' do
- client = SlackMattermostEmoji::MattermostClient.new(
- username: ENV['MATTERMOST_USERNAME'],
- password: ENV['MATTERMOST_PASSWORD'],
- domain: ENV['MATTERMOST_DOMAIN'],
- emoji_path: '~/Desktop/slack-emoji',
- )
- token = client.authenticate
- client.upload_emoji
- url = "https://#{ENV['MATTERMOST_DOMAIN']}/api/v4/emoji"
- response = HTTParty.get(url, {
- headers: {
- 'Authorization': "Bearer #{token}",
- }
- })
-
- emoji = JSON.parse(response.body).map { |e| e['name'] }
- emoji_on_disk = Dir[File.expand_path('~/Desktop/slack-emoji/*')].map { |e| File.basename(e, '.*') }
- expect(emoji).to eq(emoji_on_disk)
- end
- end
|