mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-04 04:28:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { module, test } from 'qunit';
 | 
						|
import { setupRenderingTest } from 'ember-qunit';
 | 
						|
import { render, click, findAll, find } from '@ember/test-helpers';
 | 
						|
import hbs from 'htmlbars-inline-precompile';
 | 
						|
 | 
						|
module('Integration | Component | b64 toggle', function(hooks) {
 | 
						|
  setupRenderingTest(hooks);
 | 
						|
 | 
						|
  test('it renders', async function(assert) {
 | 
						|
    await render(hbs`{{b64-toggle}}`);
 | 
						|
    assert.equal(findAll('button').length, 1);
 | 
						|
  });
 | 
						|
 | 
						|
  test('it toggles encoding on the passed string', async function(assert) {
 | 
						|
    this.set('value', 'value');
 | 
						|
    await render(hbs`{{b64-toggle value=value}}`);
 | 
						|
    await click('button');
 | 
						|
    assert.equal(this.get('value'), btoa('value'), 'encodes to base64');
 | 
						|
    await click('button');
 | 
						|
    assert.equal(this.get('value'), 'value', 'decodes from base64');
 | 
						|
  });
 | 
						|
 | 
						|
  test('it toggles encoding starting with base64', async function(assert) {
 | 
						|
    this.set('value', btoa('value'));
 | 
						|
    await render(hbs`{{b64-toggle value=value initialEncoding='base64'}}`);
 | 
						|
    assert.ok(find('button').textContent.includes('Decode'), 'renders as on when in b64 mode');
 | 
						|
    await click('button');
 | 
						|
    assert.equal(this.get('value'), 'value', 'decodes from base64');
 | 
						|
  });
 | 
						|
 | 
						|
  test('it detects changes to value after encoding', async function(assert) {
 | 
						|
    this.set('value', btoa('value'));
 | 
						|
    await render(hbs`{{b64-toggle value=value initialEncoding='base64'}}`);
 | 
						|
    assert.ok(find('button').textContent.includes('Decode'), 'renders as on when in b64 mode');
 | 
						|
    this.set('value', btoa('value') + '=');
 | 
						|
    assert.ok(find('button').textContent.includes('Encode'), 'toggles off since value has changed');
 | 
						|
    this.set('value', btoa('value'));
 | 
						|
    assert.ok(
 | 
						|
      find('button').textContent.includes('Decode'),
 | 
						|
      'toggles on since value is equal to the original'
 | 
						|
    );
 | 
						|
  });
 | 
						|
 | 
						|
  test('it does not toggle when the value is empty', async function(assert) {
 | 
						|
    this.set('value', '');
 | 
						|
    await render(hbs`{{b64-toggle value=value}}`);
 | 
						|
    await click('button');
 | 
						|
    assert.ok(find('button').textContent.includes('Encode'));
 | 
						|
  });
 | 
						|
});
 |