0
0
Fork 0
mirror of https://github.com/renovatebot/renovate.git synced 2025-02-28 18:44:03 +00:00
renovatebot_renovate/lib/modules/manager/bazel-module/parser/context.spec.ts
Michael Kriese 997c23502e
test: migrate to vitest (#34475)
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
2025-02-26 09:35:54 +00:00

60 lines
1.9 KiB
TypeScript

import { Ctx, CtxProcessingError } from './context';
import * as fragments from './fragments';
describe('modules/manager/bazel-module/parser/context', () => {
describe('Ctx (failures cases)', () => {
describe('extension tag', () => {
it('throws if there is no current', () => {
expect(() => new Ctx('').startExtensionTag('install')).toThrow(
new Error('Requested current, but no value.'),
);
});
it('throws if the current is not a prepared extension tag', () => {
expect(() =>
new Ctx('').startRule('foo').startExtensionTag('install'),
).toThrow(
new Error(
'Requested current prepared extension tag, but does not exist.',
),
);
});
it('throws if the current is not an extension tag', () => {
expect(() => new Ctx('').startRule('foo').endExtensionTag(0)).toThrow(
new Error('Requested current extension tag, but does not exist.'),
);
});
});
it('throws on missing current', () => {
const ctx = new Ctx('');
expect(() => ctx.endRule()).toThrow(
new Error('Requested current, but no value.'),
);
});
it('throws on unbalanced endRule', () => {
const ctx = new Ctx('').startRule('foo').startArray();
expect(() => ctx.endRule()).toThrow(
new Error('Requested current rule, but does not exist.'),
);
});
it('throws on unbalanced endArray', () => {
const ctx = new Ctx('').startArray().startRule('dummy');
expect(() => ctx.endArray()).toThrow(
new Error('Requested current array, but does not exist.'),
);
});
it('throws if add an attribute without a parent', () => {
const ctx = new Ctx('').startAttribute('name');
expect(() => ctx.addString('chicken')).toThrow(
new CtxProcessingError(
fragments.attribute('name', fragments.string('chicken'), true),
),
);
});
});
});