mightyscape-1.2/extensions/fablabchemnitz/dxf_dwg_importer/node_modules/dxf/test/unit/helper.test.js

67 lines
1.6 KiB
JavaScript

import fs from 'fs'
import { join } from 'path'
import expect from 'expect'
import { parseString } from 'xml2js'
import { Box2 } from 'vecks'
import { Helper } from '../../src'
const dxfContents = fs.readFileSync(
join(__dirname, '/../resources/1x1rectangle.dxf'),
'utf-8',
)
describe('Helper', () => {
it('should be constructed with a string', () => {
expect(() => {
return new Helper(null)
}).toThrow('Helper constructor expects a DXF string')
})
it('parsed automatically', () => {
const helper = new Helper(dxfContents)
expect(helper.parsed.entities.length).toEqual(1)
})
it('denormalises automatically', () => {
const helper = new Helper(dxfContents)
expect(helper.denormalised.length).toEqual(1)
})
it('can group by layer', () => {
const helper = new Helper(dxfContents)
expect(helper.groups.Default.length).toEqual(1)
})
it('can output an SVG', (done) => {
const helper = new Helper(dxfContents)
const svg = helper.toSVG()
parseString(svg, (err, result) => {
if (err) {
throw Error(err)
}
expect(result.svg.$.viewBox).toEqual('0 -10 10 10')
done()
})
})
it('can output polylines', () => {
const helper = new Helper(dxfContents)
const { bbox, polylines } = helper.toPolylines()
expect(bbox.equals(new Box2({ x: 0, y: 0 }, { x: 10, y: 10 }))).toEqual(
true,
)
expect(polylines).toEqual([
{
rgb: [0, 0, 79],
vertices: [
[0, 0],
[10, 0],
[10, 10],
[0, 10],
[0, 0],
],
},
])
})
})