Skip to content

Commit

Permalink
refactor(sbt): Reimplement the parser (#17054)
Browse files Browse the repository at this point in the history
  • Loading branch information
zharinov committed Aug 10, 2022
1 parent 6cc5aef commit 42d4de6
Show file tree
Hide file tree
Showing 4 changed files with 356 additions and 334 deletions.
35 changes: 35 additions & 0 deletions lib/modules/manager/sbt/__snapshots__/extract.spec.ts.snap
Expand Up @@ -291,6 +291,21 @@ Object {
exports[`modules/manager/sbt/extract extractPackageFile() extracts deps when scala version is defined in a variable 1`] = `
Object {
"deps": Array [
Object {
"currentValue": "2.12.10",
"datasource": "maven",
"depName": "scala",
"packageName": "org.scala-lang:scala-library",
"registryUrls": Array [
"https://repo.maven.apache.org/maven2",
"https://example.com/repos/1/",
"https://example.com/repos/2/",
"https://example.com/repos/3/",
"https://example.com/repos/4/",
"https://example.com/repos/5/",
],
"separateMinorPatch": true,
},
Object {
"currentValue": "0.0.1",
"datasource": "sbt-package",
Expand Down Expand Up @@ -431,6 +446,16 @@ Object {
exports[`modules/manager/sbt/extract extractPackageFile() extracts deps when scala version is defined in a variable with ThisBuild scope 1`] = `
Object {
"deps": Array [
Object {
"currentValue": "2.12.10",
"datasource": "maven",
"depName": "scala",
"packageName": "org.scala-lang:scala-library",
"registryUrls": Array [
"https://repo.maven.apache.org/maven2",
],
"separateMinorPatch": true,
},
Object {
"currentValue": "0.0.2",
"datasource": "sbt-package",
Expand All @@ -448,6 +473,16 @@ Object {
exports[`modules/manager/sbt/extract extractPackageFile() extracts deps when scala version is defined in a variable with a trailing comma 1`] = `
Object {
"deps": Array [
Object {
"currentValue": "2.12.10",
"datasource": "maven",
"depName": "scala",
"packageName": "org.scala-lang:scala-library",
"registryUrls": Array [
"https://repo.maven.apache.org/maven2",
],
"separateMinorPatch": true,
},
Object {
"currentValue": "0.0.2",
"datasource": "sbt-package",
Expand Down
46 changes: 39 additions & 7 deletions lib/modules/manager/sbt/extract.spec.ts
@@ -1,5 +1,7 @@
import { Fixtures } from '../../../../test/fixtures';
import { extractPackageFile } from '.';
import { extractPackageFile as extract } from '.';

const extractPackageFile = (content: string) => extract(content, 'build.sbt');

const sbt = Fixtures.get(`sample.sbt`);
const sbtScalaVersionVariable = Fixtures.get(`scala-version-variable.sbt`);
Expand All @@ -14,6 +16,7 @@ describe('modules/manager/sbt/extract', () => {
it('returns null for empty', () => {
expect(extractPackageFile('')).toBeNull();
expect(extractPackageFile('non-sense')).toBeNull();
expect(extractPackageFile('version := "1.2.3"')).toBeNull();
expect(
extractPackageFile('libraryDependencies += "foo" % "bar" % ???')
).toBeNull();
Expand All @@ -32,9 +35,6 @@ describe('modules/manager/sbt/extract', () => {
expect(
extractPackageFile('libraryDependencies += "foo" % "bar" %')
).toBeNull();
expect(
extractPackageFile('libraryDependencies += "foo" % "bar" % "baz" %%')
).toBeNull();
});

it('extracts deps for generic use-cases', () => {
Expand Down Expand Up @@ -66,6 +66,10 @@ describe('modules/manager/sbt/extract', () => {
it('extracts deps when scala version is defined in a variable', () => {
expect(extractPackageFile(sbtScalaVersionVariable)).toMatchSnapshot({
deps: [
{
packageName: 'org.scala-lang:scala-library',
currentValue: '2.12.10',
},
{ packageName: 'org.example:foo', currentValue: '0.0.1' },
{ packageName: 'org.example:bar_2.12', currentValue: '0.0.2' },
{ packageName: 'org.example:baz_2.12', currentValue: '0.0.3' },
Expand All @@ -74,13 +78,27 @@ describe('modules/manager/sbt/extract', () => {
{ packageName: 'org.example:quuz_2.12', currentValue: '0.0.6' },
{ packageName: 'org.example:corge', currentValue: '0.0.7' },
{ packageName: 'org.example:grault', currentValue: '0.0.8' },
{ packageName: 'org.example:waldo', currentValue: '0.0.9' },
{
datasource: 'sbt-plugin',
packageName: 'org.example:waldo',
currentValue: '0.0.9',
},
],

packageFileVersion: '3.2.1',
});
});

it('extracts packageFileVersion when scala version is defined in a variable', () => {
const content = `
val fileVersion = "1.2.3"
version := fileVersion
libraryDependencies += "foo" % "bar" % "0.0.1"
`;
expect(extractPackageFile(content)).toMatchObject({
packageFileVersion: '1.2.3',
});
});

it('skips deps when scala version is missing', () => {
expect(extractPackageFile(sbtMissingScalaVersion)).toEqual({
deps: [
Expand Down Expand Up @@ -157,7 +175,16 @@ describe('modules/manager/sbt/extract', () => {
libraryDependencies += "org.example" %% "bar" % "0.0.2"
`;
expect(extractPackageFile(content)).toMatchSnapshot({
deps: [{ packageName: 'org.example:bar_2.12', currentValue: '0.0.2' }],
deps: [
{
packageName: 'org.scala-lang:scala-library',
currentValue: '2.12.10',
},
{
packageName: 'org.example:bar_2.12',
currentValue: '0.0.2',
},
],
});
});

Expand Down Expand Up @@ -188,6 +215,10 @@ describe('modules/manager/sbt/extract', () => {
`;
expect(extractPackageFile(content)).toMatchSnapshot({
deps: [
{
packageName: 'org.scala-lang:scala-library',
currentValue: '2.12.10',
},
{
packageName: 'org.example:bar_2.12',
currentValue: '0.0.2',
Expand Down Expand Up @@ -307,6 +338,7 @@ describe('modules/manager/sbt/extract', () => {
).toMatchObject({
deps: [
{
datasource: 'sbt-plugin',
packageName: 'org.scala-tools.sxr:sxr',
currentValue: '0.3.0',
},
Expand Down

0 comments on commit 42d4de6

Please sign in to comment.