Files
vercel/packages/cli/test/dev-builder.unit.js
Steven f5f07c5d15 [all] Remove more "now" references (#5944)
Follow up to #5928 to remove a few more "now" references and replace with "vercel" where appropriate.
2021-03-08 10:08:09 -05:00

265 lines
5.5 KiB
JavaScript
Vendored

import test from 'ava';
import npa from 'npm-package-arg';
import { filterPackage, isBundledBuilder } from '../src/util/dev/builder-cache';
test('[dev-builder] filter install "latest", cached canary', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': '0.0.1-canary.0',
},
};
const result = filterPackage(
'@vercel/build-utils',
'canary',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] filter install "canary", cached stable', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': '0.0.1',
},
};
const result = filterPackage(
'@vercel/build-utils@canary',
'latest',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] filter install "latest", cached stable', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': '0.0.1',
},
};
const result = filterPackage(
'@vercel/build-utils',
'latest',
buildersPkg,
{}
);
t.is(result, false);
});
test('[dev-builder] filter install "canary", cached canary', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': '0.0.1-canary.0',
},
};
const result = filterPackage(
'@vercel/build-utils@canary',
'canary',
buildersPkg,
{}
);
t.is(result, false);
});
test('[dev-builder] filter install URL, cached stable', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': '0.0.1',
},
};
const result = filterPackage(
'https://tarball.now.sh',
'latest',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] filter install URL, cached canary', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': '0.0.1-canary.0',
},
};
const result = filterPackage(
'https://tarball.now.sh',
'canary',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] filter install "latest", cached URL - stable', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': 'https://tarball.now.sh',
},
};
const result = filterPackage(
'@vercel/build-utils',
'latest',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] filter install "latest", cached URL - canary', t => {
const buildersPkg = {
dependencies: {
'@vercel/build-utils': 'https://tarball.now.sh',
},
};
const result = filterPackage(
'@vercel/build-utils',
'canary',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] filter install not bundled version, cached same version', t => {
const buildersPkg = {
dependencies: {
'not-bundled-package': '0.0.1',
},
};
const result = filterPackage(
'not-bundled-package@0.0.1',
'_',
buildersPkg,
{}
);
t.is(result, false);
});
test('[dev-builder] filter install not bundled version, cached different version', t => {
const buildersPkg = {
dependencies: {
'not-bundled-package': '0.0.9',
},
};
const result = filterPackage(
'not-bundled-package@0.0.1',
'_',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] filter install not bundled stable, cached version', t => {
const buildersPkg = {
dependencies: {
'not-bundled-package': '0.0.1',
},
};
const result = filterPackage('not-bundled-package', '_', buildersPkg, {});
t.is(result, true);
});
test('[dev-builder] filter install not bundled tagged, cached tagged', t => {
const buildersPkg = {
dependencies: {
'not-bundled-package': '16.9.0-alpha.0',
},
};
const result = filterPackage(
'not-bundled-package@alpha',
'_',
buildersPkg,
{}
);
t.is(result, true);
});
test('[dev-builder] isBundledBuilder() - stable', t => {
const cliPkg = {
dependencies: {
'@vercel/node': '1.6.1',
},
};
// "canary" tag
{
const parsed = npa('@vercel/node@canary');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, false);
}
// "latest" tag
{
const parsed = npa('@vercel/node');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, true);
}
// specific matching version
{
const parsed = npa('@vercel/node@1.6.1');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, true);
}
// specific non-matching version
{
const parsed = npa('@vercel/node@1.6.0');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, false);
}
// URL
{
const parsed = npa('https://example.com');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, false);
}
});
test('[dev-builder] isBundledBuilder() - canary', t => {
const cliPkg = {
dependencies: {
'@vercel/node': '1.6.1-canary.0',
},
};
// "canary" tag
{
const parsed = npa('@vercel/node@canary');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, true);
}
// "latest" tag
{
const parsed = npa('@vercel/node');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, false);
}
// specific matching version
{
const parsed = npa('@vercel/node@1.6.1-canary.0');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, true);
}
// specific non-matching version
{
const parsed = npa('@vercel/node@1.5.2-canary.9');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, false);
}
// URL
{
const parsed = npa('https://example.com');
const result = isBundledBuilder(parsed, cliPkg);
t.is(result, false);
}
});