This repository has been archived on 2026-11-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
qqq-orb/tests/test_node_artifact_auth.py

30 lines
1.7 KiB
Python

"""GitHub Packages auth stays a literal, host-scoped runtime reference."""
import importlib.util
import os
from pathlib import Path
import subprocess
import tempfile
import unittest
ROOT = Path(__file__).resolve().parents[1]
spec = importlib.util.spec_from_file_location('pipeline', ROOT / 'src/scripts/generate_pipeline.py')
pipeline = importlib.util.module_from_spec(spec)
spec.loader.exec_module(pipeline)
class NodeArtifactAuth(unittest.TestCase):
def test_registry_configuration_uses_github_credential_without_embedding_it(self):
config = {'node_version': '20.19', 'context': 'packages', 'npm_scopes': ['@nocode-js', '@qrunio'],
'artifact_path': 'dist/component.js', 'build_branches': ['develop']}
command = pipeline.node_artifact_template(config, 'develop', '')['jobs']['node_artifact']['steps'][1]['run']['command']
with tempfile.TemporaryDirectory() as directory:
env = {**os.environ, 'GITHUB_TOKEN': 'github-fixture-secret', 'NPM_TOKEN': 'npm-fixture-secret'}
result = subprocess.run(['bash', '-c', command], cwd=directory, env=env, capture_output=True, text=True)
self.assertEqual(result.returncode, 0, result.stderr)
contents = (Path(directory) / '.npmrc').read_text()
self.assertEqual(contents.splitlines(), ['registry=https://registry.npmjs.org/',
'@nocode-js:registry=https://npm.pkg.github.com/', '@qrunio:registry=https://npm.pkg.github.com/',
'//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}'])
for value in ('github-fixture-secret', 'npm-fixture-secret'):
self.assertNotIn(value, contents + result.stdout + result.stderr)