# Copyright (c) 2014 Perforce Software, Inc. All rights reserved. require_relative './test_config' require 'helix_web_services_client' RSpec.describe 'HelixWebServicesClient labels' do randstr = (0...8).map { (65 + rand(26)).chr }.join label_id = "test_#{randstr}" new_label = { 'Label' => label_id, 'Description' => "test label #{label_id}", 'View' => ['//depot/...'] } context '#create_label' do it 'should create a new label - and return it via #labels' do client_as_jdoe do |c| c.create_label(new_label) labels = c.labels expect(labels.map(&:label)).to include(label_id) end end end context '#label' do it 'should load a single label created via #create_label' do client_as_jdoe do |c| new_label = c.label(label_id) expect(new_label.description).to include(new_label['Description']) expect(new_label.view.first).to eq('//depot/...') end end end context '#update_label' do it "'should be able to update the label description'" do client_as_jdoe do |c| new_label = c.label(label_id) new_label.description = "Update label #{label_id}" c.update_label(new_label) loaded = c.label(label_id) expect(loaded.description).to include("Update label #{label_id}") end end end context '#delete_label' do it "'should be able to delete a label created via #create_label'" do client_as_jdoe do |c| c.delete_label(label_id) labels = c.labels expect(labels.map(&:label)).to_not include(label_id) end end end end