opencolor
Version:
A collection of functions to parse Open Color files, construct them via code and write them
94 lines (77 loc) • 2.85 kB
JavaScript
/* eslint-env mocha */
'use strict'
import {expect} from 'chai'
import * as oco from '../src/index'
/** @test {Entry#clone} */
describe('Cloning Entries', () => {
/** @test {Entry#clone} */
it('should be a different object', () => {
var source = new oco.Entry()
var clone = source.clone()
expect(source).to.not.equal(clone)
// crosscheck test
var copy = source
expect(source).to.equal(copy)
})
/** @test {Entry#clone} */
it('should contain different child objects', () => {
var source = new oco.Entry()
var value = oco.ColorValue.fromColorValue('#ffe')
var color = new oco.Entry('first', [value], 'Color')
source.addChild(color)
var clone = source.clone()
expect(source.get('first')).to.not.equal(clone.get('first'))
// crosscheck test
var copy = source
expect(source.get('first')).to.equal(copy.get('first'))
})
/** @test {Entry#clone} */
it('should maintain its own properties', () => {
var root = new oco.Entry()
var value = oco.ColorValue.fromColorValue('#ffe')
var color = new oco.Entry('first', [value], 'Color')
root.addChild(color)
var clone = root.clone()
clone.name = 'Copy'
var color2 = new oco.Entry('second', [value], 'Color')
clone.addChild(color2)
expect(root.name).to.equal('Root')
expect(root.children).to.have.length(1)
expect(clone.name).to.equal('Copy')
expect(clone.children).to.have.length(2)
})
/** @test {Entry#clone} */
it('should clone metadata', () => {
var root = new oco.Entry()
var palette = new oco.Entry('first', [], 'Palette')
palette.addMetadata({
'oct/defaultView': 'squares',
'oct/color': '#000000',
'oct/ref': '=first'
})
root.addChild(palette)
var clone = root.clone()
clone.name = 'Copy'
expect(root.name).to.equal('Root')
expect(root.get('first').type).to.equal('Palette')
expect(clone.name).to.equal('Copy')
expect(clone.get('first').type).to.equal('Palette')
expect(clone.get('first').metadata.keys()).to.deep.equal(['oct/defaultView', 'oct/color', 'oct/ref'])
expect(clone.get('first').metadata.get('oct/color').type).to.equal('ColorValue')
expect(clone.get('first').metadata.get('oct/ref').type).to.equal('Reference')
})
/** @test {Reference#clone} */
it('should clone references', () => {
var root = new oco.Entry()
var value = oco.ColorValue.fromColorValue('#111111')
var color = new oco.Entry('one', [value], 'Color')
var reference = new oco.Reference('oneRef', 'one')
root.addChild(color)
root.addChild(reference)
var clone = root.clone()
clone.name = 'Copy'
expect(root.name).to.equal('Root')
expect(clone.get('oneRef').type).to.equal('Reference')
expect(clone.get('oneRef').resolved().hexcolor()).to.equal('#111111')
})
})