blob: 070fa11bce35cb36678a195bf04f7843506b3cde [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import { formatQuery } from '..';
test('No line in the query should exceed the maximum line length', () => {
// When the maximum line length is equal to the length of the query, no line wrapping should occur
expect(
formatQuery("g.V().hasLabel('person').where(outE('created').count().is(P.gte(2))).count()", {
indentation: 0,
maxLineLength: 76,
shouldPlaceDotsAfterLineBreaks: false,
}),
).toBe("g.V().hasLabel('person').where(outE('created').count().is(P.gte(2))).count()");
// A query of length 77 should be wrapped when the maximum line length is set to 76
expect(
formatQuery("g.V().hasLabel('person').where(outE('created').count().is(P.gte(2))).count()", {
indentation: 0,
maxLineLength: 75,
shouldPlaceDotsAfterLineBreaks: false,
}),
).toBe(`g.V().
hasLabel('person').
where(outE('created').count().is(P.gte(2))).
count()`);
// When wrapping occurs, the parentheses, punctuations or commas after the wrapped tokens should be included when
// considering whether to further wrap the query. This doesn't currently work, as the following test shows
// https://issues.apache.org/jira/browse/TINKERPOP-2539
/*expect(
formatQuery("g.V().hasLabel('person').where(outE('created').count().is(P.gte(2))).count()", {
indentation: 0,
maxLineLength: 45,
shouldPlaceDotsAfterLineBreaks: false,
}),
).toBe(`g.V().
hasLabel('person').
where(
outE('created').count().is(P.gte(2))).
count()`);*/
// Test that if the query is wrapped before exceeding the max line length, even if it does not start at the beginning
// of the line
expect(
formatQuery("List<Vertex> people = g.V().hasLabel('person').toList();", {
indentation: 0,
maxLineLength: 40,
shouldPlaceDotsAfterLineBreaks: false,
}),
).toBe(`List<Vertex> people = g.V().
hasLabel('person').
toList();`);
});