import _Ajv from "../ajv"
import * as assert from "assert"

const schema1 = {
  $id: "one",
  type: "object",
  properties: {
    foo: {$ref: "#/definitions/foo"},
  },
  definitions: {
    foo: {$ref: "two"},
  },
}

const schema2 = {
  $id: "two",
  type: "object",
  properties: {
    bar: {$ref: "#/definitions/bar"},
  },
  definitions: {
    bar: {type: "string"},
  },
}

describe("issue 1414: base URI change", () => {
  it("should compile schema", () => {
    const ajv = new _Ajv()
    ajv.addSchema(schema2)
    const validate = ajv.compile(schema1)
    assert.strictEqual(typeof validate, "function")
    assert.strictEqual(validate({foo: {bar: 1}}), false)
    assert.strictEqual(validate({foo: {bar: "1"}}), true)
  })
})
